Verilog之注釋 關鍵字 模組呼叫

2021-10-02 13:25:05 字數 3889 閱讀 4821

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語言中的巨集機制被繼承到...