verilog中有兩個注釋方式
一種是以**//**開頭的語句,它表示以//開始到本行結束都屬於注釋語句。
//wire define
wire locked;
//pll輸出有效標誌
wire sys_rst_n;
//系統復位資訊號
另一種是以"/「符號開始,」/"結束,在兩個符號之間的語句都是注釋語句,因此可擴充套件到多行。
//例化pll,產生各模組所需要的的時鐘
常用的關鍵字
module:模組開始定義
input:輸入埠定義
output:輸出埠定義
inout:雙向埠定義
parameter:訊號的引數定義
wire:wire訊號定義
reg:reg訊號定義
always:產生reg訊號語句的關鍵字
assign:產生wire訊號語句的關鍵字
begin:語句的起始標誌
end:語句的結束標誌
edge/posedge/negedge:時序電路的標誌
case:case語句起始標誌
default:case語句的預設分支標誌
endcase:case語句結束標誌
if:if/else語句標記
else:if/else語句標記
for:for語句標記
endmodule:模組結束定義
verilog的基本設計單元是"模組"(block)。
乙個模組由兩個部分組成,一部分描述介面,另一部分描述邏輯功能。
每個verilog程式包括4個主要的部分:埠定義、io說明、內部訊號宣告、功能定義。
示例:
module flow_led
( input sys_clk,
//系統時鐘
input sys_rst_n,
//系統復位,低電平有效
output reg [3:
0] led //4個led燈);
//reg define
reg [23:
0] counter;
//計數器對系統時鐘計數,計時0.2秒
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
counter <=
24'd0;
else
if(counter <
24'd1000_0000)
counter <= counter +
1'b1;
else
counter <=
24'd0;
end//通過移位暫存器控制io口的高低電平,從而改變led的顯示狀態
功能定義部分有三種方法:
1、assign語句:描述組合邏輯
2、always語句:描述組合/時序邏輯
3、例化例項元件:如 and # 2 u1(q,a,b);
上述三種邏輯功能是並行的
注意:在always塊中,邏輯是順序執行的;而多個always塊之間是並行的。
模組的呼叫
在模組呼叫時,訊號通過模組埠在模組之間傳遞。
例如已有time_count模組的定義
module time_count
( input clk ,
input rst_n,
output reg flag);
//parameter define
parameter max_num =
50000_000;
//reg define
reg [24:
0] cnt;
下面的模組將與上面的模組的連線
//上層模組
module seg_led_static_top
( input sys_clk ,
//系統時鐘
input sys_rst_n,
//系統復位訊號(低有效)
output [5:
0] sel ,
//數碼管位選
output [7:
0] seg_led //數碼管段選);
//parameter define
parameter time_show =
25'd24000_000;
//數碼管變化的時間間隔0.5s
//wire define
wire add_flag;
//數碼管變化的通知訊號
//注意傳遞的變臉位寬必須一致【例化模組】
time_count #(
.max_num (time_show)
)u_time_count
(.clk (sys_clk )
,.rst_n (sys_rst_n)
,.flag (add_flag)
);
另外一種呼叫模組寫法:
time_count #(
.max_num (time_show)
)u_time_count
( sys_clk,
sys_rst_n,
add_flag
);
程式中另乙個模組的呼叫
seg_led_static u_seg_led_static
(.clk (sys_clk)
,.rst_n (sys_rst_n)
,.add_flag (add_flag)
,.sel (sel)
,.seg_led (seg_led));
endmodule
在quartus中生成的電路
最左端是頂層模組輸入訊號,最右端是頂層模組輸出訊號。
rabbmitMQ 發布關鍵字模式 三
import pika import pika 輸入普通憑據 登入使用者名稱和密碼 credentials pika.plaincredentials admin admin 輸入連線引數 阻塞連線 connection pika.blockingconnection pika.connection...
Po模式和關鍵字模式
what?po模式 page object model 是一種設計思想,是為了解決自動化測試過程中隨著 量的增加導致的大量 難以維護 難以擴充套件 可讀性極差等災難性的事件的方案,所謂page object及頁面物件,頁面物件是哪些東西呢?比如乙個按鈕是乙個物件,乙個頁面也是乙個物件.實際的應用當中...
深入分析const關鍵字模型
頂層const和底層const const和其他關鍵字 最近在複習c primer,把以前沒注意到的都深入研究了一下。此篇部落格的結論都建立於c 11或者c 14的新標準上,編譯器為vs2015 community版本,g 可能會有較大出入 這點筆者已經在其他部落格上驗證 c語言中的巨集機制被繼承到...