時序邏輯always語句
本節(jié)的文檔編號:001100000062
需要看對應(yīng)的視頻,請點擊視頻編號:001100000068
1、本節(jié)主要介紹,時序邏輯的代碼,一般有兩種:同步復(fù)位時序邏輯和異步復(fù)位時序邏輯(本教學(xué)統(tǒng)一采用異步時鐘邏輯);D型觸發(fā)器的介紹,包括:D觸發(fā)器的結(jié)構(gòu)、波形、代碼以及如何看FPGA波形;時鐘的介紹,時鐘的意義,時鐘頻率和時鐘周期的換算;時序邏輯代碼和硬件的關(guān)系,即評估verilog代碼好壞的最基本標(biāo)準,不是看代碼行數(shù)而是看硬件;阻塞賦值和非阻塞賦值,前者位順序賦值,后者位同時賦值。
2、這是ALTERA和VIVADO文檔
第6節(jié)?功能描述-時序邏輯
6.1 always語句
時序邏輯的代碼一般有兩種:同步復(fù)位的時序邏輯和異步復(fù)位的時序邏輯。在同步復(fù)位的時序邏輯中復(fù)位不是立即有效,
而在時鐘上升沿時復(fù)位才有效。
其代碼結(jié)構(gòu)如下:
always@(posedge clk) begin
if(rst_n==1’b0)
代碼語句;
else begin
代碼語句;
end
end
在異步復(fù)位的時序邏輯中復(fù)位立即有效,與時鐘無關(guān)。
其代碼結(jié)構(gòu)如下:
always@(posedge clk or negedge rst_n) begin
if(rst_n==1’b0)
代碼語句;
else begin
代碼語句;
end
end
針對時序邏輯的verilog設(shè)計,筆者提出以下建議:
為了教學(xué)的方便,筆者的代碼統(tǒng)一采用異步時鐘邏輯,建議同學(xué)們都采用此結(jié)構(gòu),
這樣設(shè)計時只需考慮是用時序邏輯還是組合邏輯結(jié)構(gòu)來進行代碼編寫即可。
在實際工作中請遵從公司的相應(yīng)規(guī)范進行代碼設(shè)計。
在筆者提供的GVim軟件中打開代碼后,輸入“Zuhe”命令后回車可得到組合邏輯的代碼結(jié)構(gòu),
輸入“Shixu”命令后回車可得到時序邏輯的代碼結(jié)構(gòu)。
沒有復(fù)位信號的時序邏輯代碼設(shè)計是不規(guī)范的,建議不要這樣使用。
相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=22