閻師在數(shù)字電子技術(shù)書籍教師權(quán)利的組合邏輯電路由給定的定義,特點(diǎn)是“組合邏輯電路,在任何特定時(shí)間只能在輸入的時(shí)間取決于輸出,電路的原始狀態(tài)無(wú)關(guān)。“也就是說(shuō),組合邏輯電路輸出電路的歷史地位并不重要,電路不包括存儲(chǔ)單元。組合邏輯表達(dá)方法有三種:真值表,邏輯表達(dá)式和電路原理圖。在verilogHDL描述組合邏輯電路中,與真值表對(duì)應(yīng)的是用戶自定義原語(yǔ);而與電路原理圖相對(duì)應(yīng)的是門級(jí)建模,有個(gè)綽號(hào)又叫結(jié)構(gòu)化描述;與邏輯表達(dá)式相對(duì)應(yīng)的則稱為行為描述。另外verilogHDL還可以用更抽象的描述方法描述組合邏輯電路。
這樣看起來(lái),不少還沒(méi)有接觸verilogHDL的人可能會(huì)大呼上當(dāng):這些小把戲也值得費(fèi)時(shí)間研究?尤其在這個(gè)迅速發(fā)展的年頭,哪有閑功夫?qū)W習(xí)什么邏輯語(yǔ)言描述呀!我會(huì)用EDA試驗(yàn)課上教授的原理圖的繪畫不就夠了嗎?
其實(shí)不然,從會(huì)用圖形表達(dá)意思到用各種抽象的文字表達(dá)意思,人類的文明由此建立。語(yǔ)言抽象的威力可見一斑。試想,你1個(gè)3-8譯碼器你可以用圖畫,10個(gè)也沒(méi)問(wèn)題,但是后面加個(gè)萬(wàn)呢?事實(shí)上經(jīng)過(guò)這些年的發(fā)展,verilogHDL等針對(duì)硬件描述語(yǔ)言小到密碼鎖,大到CPU(其實(shí)也是小,就是多而已)都可以拿來(lái)設(shè)計(jì)。
好了,看到這里你可能雄心勃勃想設(shè)計(jì)CPU了。高樓平地起,那我們就言歸正傳,開始進(jìn)入硬件語(yǔ)言設(shè)計(jì)的世界吧。
在verilogHDL描述邏輯電路中有三種表達(dá)方式:assign、always和門原語(yǔ)。
所謂assign描述其實(shí)沒(méi)什么難的,不過(guò)是用邏輯表達(dá)式和算術(shù)表達(dá)式描述輸出信號(hào)與輸入信號(hào)之間建立的某種直接的聯(lián)系。
例如要求X1=a&b,你可以輸入:
assign X1=a&b;
要求X2=a|b,你就敲:
assign X2=a|b;
非常簡(jiǎn)單,非常實(shí)用。
所謂always描述則可以在設(shè)計(jì)之中經(jīng)常看見。首先,always在英語(yǔ)中的意思有三,即: invariably、forever、in any event。不少人可能以為always在verilogHDL中就是in any event的意思,沒(méi)什么新的。其實(shí)不然。always在使用中必須加入事件的控制,當(dāng)事件發(fā)生時(shí),執(zhí)行always指定的內(nèi)容。需要注意的是,always另外一個(gè)特性是不論該事件已經(jīng)發(fā)生多少次,只要事件發(fā)生就會(huì)執(zhí)行相關(guān)的操作。其中最常見的兩個(gè)事件是電平觸發(fā)和邊沿觸發(fā)。
所謂電平觸發(fā)是指當(dāng)某個(gè)信號(hào)的電平發(fā)生變化時(shí),執(zhí)行指定內(nèi)容;
例如:
always @(a or b)
out1=a+b;
指當(dāng)a或b 的值發(fā)生變化時(shí),out1等于a和b的算術(shù)和。
所謂邊沿觸發(fā)是指當(dāng)某個(gè)信號(hào)的上升沿或者下降沿到來(lái)時(shí),執(zhí)行always指定的內(nèi)容。
例如:
always @(posedge clk1)
out2=a&b;
指當(dāng)clk1的上升沿到來(lái)時(shí),令out2等于a和b的邏輯與。
always @(negedge clk2)
out3=a|b;
指當(dāng)clk2的下降沿到來(lái)時(shí),令out3等于a和b 的 邏 輯 或 。
本文地址:http://m.4811775.com/dz/22/20091111201600.shtml
本文標(biāo)簽:
猜你感興趣:
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)
無(wú)