HDLBits (30) — Always模塊(時(shí)鐘)
2022-02-05 17:05 作者:僚機(jī)Wingplane | 我要投稿
本題鏈接:
https://hdlbits.01xz.net/wiki/Alwaysblock2
對(duì)于硬件綜合,有兩種類型的always塊是相關(guān)的:
組合:?always @(*)
時(shí)鐘:?always @(posedge clk)
時(shí)鐘always塊就像組合always塊一樣創(chuàng)建了一個(gè)組合邏輯塊,但會(huì)在組合邏輯塊的輸出端創(chuàng)建一組觸發(fā)器(或“寄存器”)。與邏輯 blob 的輸出立即可見(jiàn)不同,輸出只在下一個(gè)觸發(fā)(clk上升沿)之后可見(jiàn)。
阻塞與非阻塞分配
Verilog中有三種類型的分配:
連續(xù)賦值(賦值x=y;)。只能在不在過(guò)程內(nèi)部時(shí)使用(“始終塊”)。
過(guò)程阻塞分配:(x=y;)。只能在過(guò)程內(nèi)部使用。
過(guò)程非阻塞賦值:(x<=y;)。只能在過(guò)程內(nèi)部使用。
在組合always塊中,使用阻塞賦值。在時(shí)鐘always塊中,使用非阻塞賦值。充分理解為什么對(duì)硬件設(shè)計(jì)特別有用,于此同時(shí)還需要了解Verilog模擬器是如何跟蹤事件。不遵循這一規(guī)則會(huì)導(dǎo)致非常難以發(fā)現(xiàn)的錯(cuò)誤,這些錯(cuò)誤既不確定,也不同于模擬硬件和合成硬件。

題目
使用assign語(yǔ)句、組合always塊和時(shí)鐘always塊以三種方式構(gòu)建異或門。請(qǐng)注意,時(shí)鐘始終塊產(chǎn)生與其他兩個(gè)不同的電路:有一個(gè)觸發(fā)器,因此輸出延遲。


答案

輸出波形

標(biāo)簽: