前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇組合電路的設(shè)計范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
中圖分類號: TP331.1 文獻標識碼: A 文章編號:
1 組合邏輯電路的分析
組合邏輯電路的分析過程如下:
(1)由給定的邏輯電路圖,寫出輸出端的邏輯表達式;
(2)列出真值表;
(3)從真值炭概括出邏輯功能;
(4)對原電路進行改進設(shè)計,尋找最佳方案。
舉例說明分析過程如下:
已知邏輯電路如圖1所示,分析其功能。
解:第一步:寫出邏輯表達式。由前級到后級寫出各個門的輸出函數(shù)
第二步:如出真值表,如表2所示。
第三步;邏輯功能描述。真值表已經(jīng)全面地反映了該電路的邏輯功能。下面用文字描
述其功能。達一步對初學(xué)者有一定的困難,但通過多練習(xí),多接觸邏輯學(xué)問題,也不難
掌握。
由真值表可以看出,在輸入三變量中,只要有兩個以上變量為1,則輸出為1,故該電路可概括為:三變量多數(shù)表決器。
第四步;檢驗該電路設(shè)計是否最簡,并改進。
畫出卡諾圖,化簡結(jié)果與原電路一致,說明原設(shè)計合理,無改進的必要。
(圖1) (圖2)
2組合邏輯電路的設(shè)計
電路設(shè)計的任務(wù)就是根據(jù)功能設(shè)計電路。一般按如下步驟進行:
(1)將文字描述的邏輯命題變換為真值表,這是十分重要的一步。作出真值表前要仔
細分析解決邏輯問題的條件,作出輸入、輸出變量的邏輯規(guī)定,然后列出真值表。
(2)進行函數(shù)化簡,化簡形式應(yīng)依據(jù)選擇什么門而定。
(3)根據(jù)化簡結(jié)果和選定的門電路,畫出邏輯電路。
(例2)設(shè)計三變量表決器,其中A具有否決權(quán)。
解第一步:列出真值表。
設(shè)A、B、C分別代表參加表決的邏輯變量,F(xiàn)為表決結(jié)果。對于變量我們作如下規(guī)
定:A、B、C為1表示贊成,為0表示反對。F=1表示通過,F(xiàn)=0表示被否決。真值表如
圖3所示。
第二步:函數(shù)化簡。
我們選用與非門來實現(xiàn)。畫出卡諾圖,其化簡過程如圖4所示,邏輯電路如圖5所示。
(圖3)
(圖4)(圖5)
參考文獻:
1、羅朝杰.數(shù)字邏輯設(shè)計基礎(chǔ).北京:人民郵電出版社,1982.
2、(美)納爾遜(Neslon,V.P.),等.數(shù)字邏輯電路分析與設(shè)計.英文影印本.
華大學(xué)出版社,1997.
3、王毓銀.脈沖與數(shù)字電路.3版.北京:高等教育出版社,1999.
關(guān)鍵詞:口袋實驗室;數(shù)字邏輯;組合邏輯電路;嵌入式系統(tǒng)
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)28-0268-03
口袋實驗室,又稱無墻實驗室,就是讓學(xué)生人手一個迷你“口袋實驗箱”,上課帶來、下課帶走,課程結(jié)束時歸還。學(xué)生有了一個小的實驗平臺,就可以結(jié)合課程內(nèi)容,隨時隨地進行課程實驗;同時,激蕩在學(xué)生頭腦中的創(chuàng)新想法可以即時得到驗證,激發(fā)他們主動學(xué)習(xí)的興趣。
口袋實驗室這種形式使實驗設(shè)備突破了實驗室的限制、實驗課時的限制,能夠把最新的技術(shù)補充到學(xué)生的課余學(xué)習(xí)中,讓學(xué)生隨時隨地都能進行實驗,從而最大程度地實現(xiàn)了實驗室的開放。
目前口袋實驗室理念在國內(nèi)多所高校已得到廣泛的認可和貫徹,如清華大學(xué)、北京大學(xué)、哈爾濱工業(yè)大學(xué)、復(fù)旦大學(xué)、同濟大學(xué)、上海交通大學(xué)、東南大學(xué)、華中科技大學(xué)等都建起了數(shù)量、規(guī)模各異的口袋實驗室。
本組合邏輯電路設(shè)計就是基于Xilinx(賽靈思公司)Basys3口袋實驗室的。在性能更好的NEXYS4或ZYBO實驗板上也可實現(xiàn)。
1 口袋實驗室之核心硬件Basys3
Basys3 實驗板(見圖1)是一款采用Xilinx最新7系列的數(shù)字電路入門級開發(fā)平臺,該平臺主芯片為Xilinx Artix系列中的最小型號 XC7A35T。它包含5200個slice資源,相當于33,280個邏輯單元。每個slice包含4個6輸入查找表(LUT),8個觸發(fā)器 。容量為1800kb的塊狀RAM 以及5個時鐘管理單元,每個單元帶有一個鎖相環(huán)。Basys3同時也是一款入門級的FPGA實驗板,專門針對Vivado Design Suite而設(shè)計,具有Xilinx Artix-7 FPGA架構(gòu)。Basys3包含了所有Basys系列板卡的標準功能:完備的硬件規(guī)格,大 量的板載IO設(shè)備,所有需要FPGA支持的電路,以及免費的開發(fā)工具,上手即用。
采用Basys3 可以實施更貼近嵌入式方向?qū)I(yè)要求的數(shù)字邏輯實驗項目,形成符合嵌入式方向?qū)I(yè)要求的數(shù)字邏輯實驗課程。可解決現(xiàn)有《數(shù)字邏輯》實驗課程的教學(xué)要求與嵌入式方向?qū)I(yè)要求相比有些偏低的問題。同時可以解決現(xiàn)有面向嵌入式方向的基礎(chǔ)實驗課程實驗平臺各異,實驗內(nèi)容不夠貫通的問題。
2 口袋實驗室之核心軟件Vivado
賽靈思在全球業(yè)界第一個發(fā)貨和量產(chǎn)28nm 7系列器件后,2012年又推出了“Vivado”這一全新的FPGA設(shè)計套件,很可能在將來取代已經(jīng)面世18年之久的賽靈思ISE設(shè)計套件。Vivado的推出,不僅僅是讓設(shè)計的界面更加漂亮(如圖2所示),更重要的是它帶給行業(yè)的那種體現(xiàn)在設(shè)計手段和設(shè)計方法上的的創(chuàng)新。眾所周知,對于電子設(shè)計工程師來說,一方面要求FPGA能實現(xiàn)所有的數(shù)字系統(tǒng)功能,包括:數(shù)字邏輯、嵌入式系統(tǒng)和數(shù)字信號處理等等;另一方面又要求基于FPGA的設(shè)計就像他們使用“C”語言給CPU、MCU編程那樣的簡單。Vivado將這兩個看起來相互矛盾的夢想變成了現(xiàn)實。
在Vivado 2014.3環(huán)境下如同前期的ISE環(huán)境,可以非常方便地運用Verilog HDL語言的編程開發(fā)流程,包括源程序的輸入、編譯、模擬仿真及程序下載。
通過學(xué)習(xí)Verilog硬件描述語言,以及利用Verilog HDL進行數(shù)字電路設(shè)計和FPGA開發(fā)的方法。可讓學(xué)生初步掌握代表當今數(shù)字邏輯設(shè)計前沿的FPGA開發(fā)的設(shè)計流程。除基本組合邏輯電路實驗外,還可以追加時序邏輯電路的設(shè)計實驗、。
3 口袋實驗室之組合邏輯電路設(shè)計實驗
本實驗所用口袋實驗室為Basys3電路板,板上的LED燈是共陰極的連接方式,當輸入高電平‘1’時,LED亮;當撥動開關(guān)靠近數(shù)字標稱端輸出為低電平‘0’。
3.1 簡單門電路的實現(xiàn)
在數(shù)字電路中,二輸入與門電路、或門電路、非門電路、與非門電路、或非門電路和異或門電路的邏輯表達式如下所示,真值表如表1。
下面分別給出這些門電路的行為描述方式(Behavioral)和邏輯寄存器傳輸描述方式(Register Transfer Level,RTL)。可以看出,行為描述方式和邏輯表達式十分接近,而寄存器傳輸描述方式則是以真值表為依據(jù)進行編寫的。 具體操作步驟如下:
(1) 利用向?qū)В⒁粋€新項目,工程名為expe1,頂層文件名也指定為gate。
(2) 新建一個Verilog HDL文件。
(3) 在Verilog HDL文件中輸入程序:
a 行為描述方式源程序:
module gate(a,b,c1,c2,c3,c4,c5,c6);
input a,b;
output c1,c2,c3,c4,c5,c6;
assign c1=a&b;
assign c2=a|b;
assign c3=~a;
assign c4=~(a&b);
assign c5=~(a|b);
assign c6=a^b;
endmodule
b 寄存器傳輸描述方式源程序:
module gate(a,b,c1,c2,c3,c4,c5,c6);
input a,b;
output c1,c2,c3,c4,c5,c6;
reg c1,c2,c3,c4,c5,c6;
always@(a or b) begin
case({a,b})
2'b00:
begin
c1
end
2'b01:
begin
c1
end
2'b10:
begin
c1
end
2'b11:
begin
c1
end
default:
begin
c1
end
endcase
end
endmodule
(1) 進行語法檢查和綜合編譯。
(2) 編寫testbench,進行時序仿真。
(3) 分配管腳,生成*.bit文件(管腳分配可參照后續(xù)實驗結(jié)果部分)。
(4) 下載。
3.2 三態(tài)門電路的實現(xiàn)
在數(shù)字電路中,三態(tài)門電路是在普通門電路的基礎(chǔ)上附加控制電路構(gòu)成的。三態(tài)門主要用于可編程邏輯器件管腳的雙向口設(shè)置。三態(tài)門的邏輯電路圖如圖3所示,真值表如表2。
根據(jù)三態(tài)門的邏輯電路圖和真值表,不難看出三態(tài)門電路的基本工作原理是:當控制端口的輸入使能信號EN=’1’,那么直接將輸入端口的數(shù)據(jù)送到輸出端口上;當控制端口的輸入使能信號EN=’0’,那么這時輸出端口呈高阻狀態(tài)。 具體操作步驟如下:
(1) 利用向?qū)В⒁粋€新項目,工程名為expe2,頂層文件名也指定為tri_gate。
(2) 新建一個Verilog HDL文件。
(3) 在Verilog HDL文件中輸入程序:
module tri_gate(din,en,dout);
input din,en;
output dout;
reg dout;
always@(din or en) begin
if(en==1) dout
else dout
end
endmodule
(4) 進行語法檢查和綜合編譯。
(5) 進行時序仿真。
(6) 重新分配管腳,生成*.bit文件(管腳分配可參照實驗結(jié)果部分)。
(7) 下載。
3.3 實驗結(jié)果
1) 兩輸入與門電路的管腳分配表和實驗結(jié)果對照表見表3、表4。
2) 二輸入或門電路、非門電路、與非門電路、或非門電路和異或門電路的管腳分配表和實驗結(jié)果對照表見表5、表6。
3) 三態(tài)門電路的管腳分配表和實驗結(jié)果對照表見表7、表8。
4 結(jié)束語
本組合邏輯電路設(shè)計是基于Xilinx(賽靈思公司)Basys3口袋實驗室實現(xiàn)的,主要內(nèi)容為簡單門電路和三態(tài)門電路。在此口袋實驗室的電路板上還可以實現(xiàn)編碼/譯碼器,比較器,全加器等組合邏輯功能。項目中使用的口袋實驗室由于其優(yōu)秀的軟、硬件平臺,在本科教學(xué)中有多方面的應(yīng)用價值。
1)在Vivado 2014.3環(huán)境下,可推動Verilog HDL基本語法的學(xué)習(xí),有利于學(xué)生掌握Verilog HDL編程設(shè)計的基礎(chǔ)。 而Verilog HDL和VHDL并稱為業(yè)界最流行的兩種硬件描述語言,其重要性不言而喻。
2)在本科嵌入式方向的《數(shù)字邏輯》、《計算機組成原理》、《計算機系統(tǒng)結(jié)構(gòu)》三門課程間有一條銜接與貫通的主線:即由計算機組成基礎(chǔ)部件到單/多周期CPU和中斷/IO處理CPU,再到基本流水線CPU。本實驗平臺可直接應(yīng)用于這三門課程。不僅能節(jié)約學(xué)生熟悉實驗平臺的時間,而且同一實驗平臺有利于他們溫故而知新。
3)讓嵌入式方向的學(xué)生開始學(xué)習(xí)滿足較高專業(yè)需求的實驗內(nèi)容。打通面向嵌入式方向的基礎(chǔ)實驗課程的教學(xué)內(nèi)容,有利于學(xué)生較系統(tǒng)、深刻地掌握滿足專業(yè)要求的軟硬件知識,鍛煉他們的系統(tǒng)設(shè)計能力。
參考文獻:
[1] 白中英,謝松云等.數(shù)字邏輯[M].6版.北京:科學(xué)出版社,2013.
[2] RichardE.Haskell著,鄭利浩譯.FPGA數(shù)字邏輯設(shè)計教程―Verilog[M].北京:電子工業(yè)出版社,2013.
[3] 何賓.Xilinx FPGA設(shè)計權(quán)威指南:Vivado集成設(shè)計環(huán)境[M].北京:清華大學(xué)出版社,2014.
關(guān)鍵字:數(shù)字電路;組合邏輯電路;時序邏輯電路
中圖分類號:TN79文獻標識碼:A 文章編號:1673-0992(2010)06A-0042-01
眾所周知,近年,科學(xué)技術(shù)的不斷進步帶動許多行業(yè)發(fā)生了翻天覆地的變化,電子信息行業(yè)走在了科學(xué)發(fā)展的前列,表現(xiàn)尤為突出的是數(shù)字電子技術(shù),科學(xué)進步的浪潮中它迅速前進,已成為當前發(fā)展最快的學(xué)科之一,數(shù)字邏輯器件已從60年代的小規(guī)模集成電路(SSI)發(fā)展到目前的中、大規(guī)模集成電路(MSI、LSI)及超大規(guī)模集成電路(VLSI)。那么,邏輯器件的變化也會影響整個數(shù)字邏輯電路的發(fā)展。
一、數(shù)字電路的狀態(tài)
數(shù)字電路顧名思義就是對數(shù)字信號進行算術(shù)運算和邏輯運算的電路,它只有兩個狀態(tài)就是0和1。在數(shù)字電路中,低電平用0表示,高電平用1表示,有時低電位也用字母L(Light)表示,而高電位用字母H(High)表示。另外在對0和1理解時,還會有時間限制,因為數(shù)字0、1表示電路狀態(tài),結(jié)合時間看電路時,要明白電路工作時序。
二、數(shù)字邏輯電路的基本定律
數(shù)字電路的設(shè)計在生活中使用非常廣泛,但是怎樣設(shè)計出符合要求的電路,這就是一門技術(shù)活了。因此理解數(shù)字電路設(shè)計,重點在基本概念和基本方法上。數(shù)字設(shè)計中邏輯代數(shù)基本定律、組合邏輯和時序邏輯的概念是分析和設(shè)計數(shù)字系統(tǒng)的基礎(chǔ),也是設(shè)計大規(guī)模集成芯片的基礎(chǔ),所以我們在說數(shù)字電路設(shè)計之前就要先了解邏輯代數(shù)的基本知識定律。邏輯代數(shù)是英國數(shù)學(xué)家喬治.布爾(Geroge . Boole)于1847年首先進行系統(tǒng)論述的,也稱布爾代數(shù)。 所研究的是兩值變量的運算規(guī)律,即0,1表示兩種不同的邏輯狀態(tài),稱這種只有兩種對立邏輯狀態(tài)的邏輯關(guān)系為二值邏輯。在邏輯代數(shù)中我們最先了解的就是進制的轉(zhuǎn)換,計算機系統(tǒng)中一般二進制、八進制、十進制、十六進制是了解最多的,轉(zhuǎn)換這些進制也是最容易的,掌握其中的計算方法就能得到。
三、數(shù)字電路設(shè)計―組合邏輯和時序邏輯
在做數(shù)字電路設(shè)計時主要就是組合邏輯電路設(shè)計和時序邏輯電路設(shè)計。從一方面說,這兩種電路的設(shè)計是數(shù)字電路中的一個最基本的也是最重要的部分,只有會做這兩種電路的設(shè)計才算是對數(shù)字電路入門了。所以我們先對這兩種設(shè)計作下簡單的介紹。
如果說邏輯電路設(shè)計是數(shù)字電路的最基礎(chǔ)的組成部分,那么門電路就是帶動這些部分運轉(zhuǎn)的重要元素,就像是一部機器,門電路就是機器中的零件,大家都知道零件在機器的運轉(zhuǎn)中起著不容小覷的作用,如果在某個部位因為一個小零件的出錯,可能會導(dǎo)致整個機器出故障。邏輯電路中最基本的門電路通常是與門、或門、非門。與門是邏輯與運算的單元電路;或門是邏輯或運算的單元電路;非門,也叫反相器,是實現(xiàn)邏輯非運算的電路。在實際的應(yīng)用中并不是把它們直接使用,而是將它們組合成復(fù)合邏輯運算與非、或非、與或非、異或、同或等常用的門來實現(xiàn)其功能。我們在日常生活中見得最多的就是交通燈的控制,就是用組合邏輯電路設(shè)計成的。在組合邏輯電路的設(shè)計中,利用門電路的組合完成的很多電路的設(shè)計,編碼器、譯碼器就是組合邏輯電路中的器件,組成的液晶顯示器LCD,數(shù)碼顯示器LED。
時序邏輯電路中,主要的零件就是集成觸發(fā)器,在各種復(fù)雜的數(shù)字電路中不但需要對二值信號進行算術(shù)運算和邏輯運算,還經(jīng)常需要將這些信號和運算結(jié)果保存起來,因此需要使用記憶功能的基本邏輯單元,而這種能儲存信號的基本單元電路就是觸發(fā)器。迄今為止,人們已經(jīng)研制出了很多種觸發(fā)器電路,根據(jù)電路結(jié)構(gòu)形式的不同,可以分為基本RS觸發(fā)器、同步RS觸發(fā)器、主從觸發(fā)器、邊沿觸發(fā)器等。這些觸發(fā)器的研制都是在前一種觸發(fā)器的基礎(chǔ)上改進而來的,通俗的說是后人在前人的研究發(fā)明中不斷提煉出的新器件。因此同步觸發(fā)器是建立在基本RS觸發(fā)器的基礎(chǔ)上的,基本RS觸發(fā)器輸入信號可以直接控制觸發(fā)器的狀態(tài)翻轉(zhuǎn),而在實際應(yīng)用中往往要求在約定脈沖信號到來時,觸發(fā)器才能翻轉(zhuǎn),所以才有同步RS觸發(fā)器的出現(xiàn)。但是同步RS觸發(fā)器有空翻現(xiàn)象,不能正常計數(shù),因此人們又研制了主從觸發(fā)器,同樣為了克服主從觸發(fā)器的一次性變化,就有了邊沿觸發(fā)器的產(chǎn)生。
四、數(shù)字集成電路
在很多人看來,數(shù)字集成電路是非常空洞的東西,因為只是一塊芯片,卻能實現(xiàn)如此多的功能。那在數(shù)字集成電路中主要有哪些電路呢?常用的數(shù)字集成電路一般有CMOS電路和TTL電路兩種。CMOS電路有消耗功率低,工作電壓范圍廣和噪聲容限大的特點,雖然在CMOS電路的輸入端已經(jīng)設(shè)置了保護電路,但由于保護二極管和限流電阻的幾何尺寸有限,它們所能承受的靜電電壓和脈沖功率均有一定限度。CMOS集成電路在儲存運輸、組裝和調(diào)試過程中難免會接觸到某些帶靜電高壓的物體,所以一般要對輸入的靜電進行保護,另外CMOS還會出現(xiàn)電路鎖定效應(yīng),一般為了使用安全和方便,人們一直在研究從CMOS電路本身的設(shè)計和制造上克服鎖定效應(yīng)方法。當然,集成電路一般的要求都非常高,它需要預(yù)先對芯片進行設(shè)計,編制一定的程序,而我們往往使用現(xiàn)成的電路,對它只做了一定的分析。
通過對數(shù)字電路的基本知識的解讀,當然這只是很淺的一方面。而數(shù)字電路涉及到的一些專用的集成電路。由于專用集成電路(ASIC)是近期迅速發(fā)展起來的新型邏輯器件,這些器件的靈活性和通用性使它們已成為研制和審計數(shù)字系統(tǒng)的最理想器件。因此數(shù)字電路的發(fā)展在今后還有很大的空間,但是在發(fā)展的同時,數(shù)字電路的基礎(chǔ)的知識是不會改變的,只會在原來的基礎(chǔ)上得到更大的改進,這需要新新的電子人來改進數(shù)字電路的不足地方,將它所存在的每一個缺點進行彌補,使各個部分它的作用發(fā)揮到最大。
數(shù)字電路在實際運用中將越來越廣泛,現(xiàn)在在要求普及的數(shù)字電視已經(jīng)進入了千家萬戶,數(shù)字化已經(jīng)成了必然的趨勢。但是任何技術(shù)知識,基礎(chǔ)都是最根本,最主要的,數(shù)字電路的組成剛好是是基礎(chǔ)。數(shù)字化的時代已經(jīng)到來,打好基礎(chǔ)知識是數(shù)字電路發(fā)展的前提條件。
關(guān)鍵字:FPGA;高速低功耗; 方法措施
FPGA的功耗高度依賴于用戶的設(shè)計,沒有哪種單一的方法能夠?qū)崿F(xiàn)這種功耗的降低,如同其它多數(shù)事物一樣,降低功耗的設(shè)計就是一種協(xié)調(diào)和平衡藝術(shù),在進行低功耗器件的設(shè)計時,人們必須仔細權(quán)衡性能、易用性、成本、密度以及功率等諸多指標。
FPGA設(shè)計的總功耗包括靜態(tài)功耗和動態(tài)功耗兩個部分。其中,靜態(tài)功耗是指邏輯門沒有開關(guān)活動時的功率消耗,主要由泄漏電流造成的,隨溫度和工藝的不同而不同。靜態(tài)功耗主要取決于所選的FPGA產(chǎn)品。
動態(tài)功耗是指邏輯門開關(guān)活動時的功率消耗,在這段時間內(nèi),電路的輸入輸出電容完成充電和放電,形成瞬間的軌到地的直通通路。與靜態(tài)功耗相比,通常有許多方法可降低動態(tài)功耗。
為提高FPGA的數(shù)據(jù)處理速度及降低芯片功耗,邏輯電路設(shè)計應(yīng)重點采用以下措施:
(1)采用流水線,降低芯片功耗,提高系統(tǒng)時鐘。流水線是一種設(shè)計技巧,它在很長的組合邏輯路徑中插入寄存器,寄存器雖增加了運算周期數(shù),卻能大大減少組合邏輯延時,提高整個系統(tǒng)工作頻率。有流水線電路在占用資源略有增加情況下,工作速度是沒有流水線電路的2倍多,可見,少量資源換來了芯片工作速度的成倍增加。
(2)按面積優(yōu)化組合邏輯,減小組合邏輯的復(fù)雜性,從而減少組合電路需要的邏輯門數(shù)量,邏輯門數(shù)的減少,意味著芯片功耗的降低。流水線的使用已經(jīng)保證芯片具有足夠高的處理速度,各個寄存器間的組合邏輯不再以速度為優(yōu)化目標進行設(shè)計,考慮到功耗要求,應(yīng)以最少的邏輯門數(shù)實現(xiàn)該功能。
(3)以原理圖描述功能模塊的數(shù)據(jù)流,以VHDL語言的行為語句描述控制流。這種邏輯電路設(shè)計思想,充分利用原理圖設(shè)計直觀、形象和VHDL輸入法簡單明了的優(yōu)勢,既可以獲得具有高效率流水線結(jié)構(gòu)的同步電路,又能夠大大縮短設(shè)計時間。
(4)在電路設(shè)計過程中,應(yīng)使用“自底向上”與“自頂向下”設(shè)計相結(jié)合、“邏輯設(shè)計”與“功能仿真”交替進行的設(shè)計技巧,以保證邏輯電路的層次化、模塊化以及功能的正確性。首先把邏輯復(fù)雜的功能模塊,分割為幾個相對簡單的小模塊;然后分別設(shè)計這些小模塊,進行功能仿真,發(fā)現(xiàn)錯誤,修改設(shè)計,再仿真……,直到功能完全正確;再實例化小模塊,組成功能復(fù)雜的大模塊,依舊重復(fù)功能仿真、修改設(shè)計的過程;再實例化這些大模塊,構(gòu)成更上層模塊……,最后獲得功能完全正確的邏輯電路。
(5)在時鐘網(wǎng)絡(luò)上減少開關(guān)動作也可大幅降低功耗。多數(shù)可提供獨立全局時鐘的FPGA是分割為幾部分的,若一個設(shè)計間歇地采用部分邏輯,就可關(guān)掉其時鐘以節(jié)省功耗。最新FPGA中的PLL可禁止時鐘網(wǎng)絡(luò)并支持時鐘轉(zhuǎn)換,因此既可關(guān)掉時鐘也可轉(zhuǎn)換為更低頻率的時鐘。更小的邏輯部分能夠潛在地使用本地/局域時鐘來替代全局時鐘,因此不必使用不相稱的大型時鐘網(wǎng)絡(luò)。
(6)對易受干擾的設(shè)計而言,減少意外的邏輯干擾可大幅降低動態(tài)功耗。意外干擾是在組合邏輯輸出時產(chǎn)生的暫時性邏輯轉(zhuǎn)換。減少這種效應(yīng)的一個方法是重新考慮時序設(shè)計,以平衡時序關(guān)鍵路徑和非關(guān)鍵路徑間的延遲。用戶可在軟件工具的幫助下應(yīng)用這種方法,例如某軟件可通過組合邏輯移動寄存器的位置,以實現(xiàn)平衡時序。另外一種方法是引入流水線結(jié)構(gòu),以減少組合邏輯深度,流水線還有助于增加速度。第二種方法對無意外干擾設(shè)計的效果不明顯,相反還可能增加功耗。
方便快捷的精確功率估算工具,不僅有助于設(shè)計工程師對功率進行定量評估,同時也有助于加快產(chǎn)品設(shè)計進度。如果在初期功率評估工具和數(shù)據(jù)表中沒有實際數(shù)據(jù),設(shè)計工程師就不能在設(shè)計階段走得更遠。獲取初期評估數(shù)據(jù)工具,可使設(shè)計人員在設(shè)計開始之前就進行功率估算。此外作為設(shè)計規(guī)劃,工程師可將布局和布線設(shè)計加載到更精確的功率評估持續(xù)當中,從而得到一個更精準的功耗描述。最好的評估工具可使仿真文件無縫集成到電源工具中,因而能夠獲得開關(guān)功率的精確描述;若不能進行仿真,則該工具也能自動給出FPGA設(shè)計的評估參數(shù)。
參考文獻:
(西安郵電大學(xué)電子工程學(xué)院,陜西西安710121)
摘要:為了高效地利用Verilog HDL語言中always行為建模語句設(shè)計集成電路,采用比較和舉例論證的方法,總結(jié)出always語句中事件控制敏感信號對設(shè)計仿真的影響。always語句中敏感信號分為時鐘邊沿信號和電平信號,對于敏感信號為時鐘邊沿信號,仿真結(jié)果直觀簡單;但是對于敏感信號為電平信號,敏感信號必須是所有的輸入和判斷語句的信號,否則仿真結(jié)果不確定。
關(guān)鍵詞 :Verilog HDL;always語句;敏感信號;時鐘邊沿信號;時鐘電平信號
中圖分類號:TN911.6?34;TP312 文獻標識碼:A 文章編號:1004?373X(2015)15?0032?03
收稿日期:2015?02?26
基金項目:陜西省教育廳專項科研基金(2013JK0626);西安郵電大學(xué)青年教師科研基金資助項目(101?1215;101?0473)
0 引言
硬件描述語言(Hardware Description Language,HDL)是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言。Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的,兩種HDL 均為IEEE 標準。但是Veriolg 語言的很多規(guī)定與C語言相似,代碼簡單,有大量支持仿真的語句與可綜合語句,對于初學(xué)者設(shè)計簡單的數(shù)字系統(tǒng),更容易學(xué)習(xí)和掌握[1]。所以,Verilog HDL語言在大規(guī)模集成電路和現(xiàn)場可編程門陣列設(shè)計中得到了廣泛的應(yīng)用[2?4]。
在集成電路設(shè)計中,Verilog語言中的always語句經(jīng)常用來描述時序邏輯電路和組合電路。always語句是一種結(jié)構(gòu)化的過程語句,是行為級建模的基本語句,它的語句格式為:always@(敏感事件列表),敏感事件可以是時鐘邊沿信號也可以是電平信號,分別對應(yīng)時序邏輯電路和組合邏輯電路[5]。敏感事件列表中可以包含多個敏感事件,只要所列舉的任意一種情況發(fā)生,都將激活事件控制,各個敏感事件之間是“或”的關(guān)系;但不可以同時包括電平敏感事件和邊沿敏感事件,也不可以同時包括同一個信號的上升沿和下降沿,這兩個事件可以合并為一個電平敏感事件。而且,按照語法要求,在always塊中只能給寄存器變量賦值。
在實際應(yīng)用中,敏感信號為時鐘邊沿信號,仿真綜合結(jié)果一般正確。但是當敏感信號為電平信號時,情況就會變得復(fù)雜,仿真綜合結(jié)果會變得不確定。文獻[6]對always敏感信號與仿真結(jié)果的這種不確定性問題也進行了肯定,但是并沒有進一步的分析。本文對always語句中的事件控制敏感信號出現(xiàn)的各種情況進行對比探討,發(fā)掘always語句中敏感信號分別為時鐘邊沿信號和電平信號的差異,并通過仿真圖形去驗證。
1 敏感信號為時鐘邊沿信號
Always語句中的敏感信號如果為時鐘邊沿敏感事件,一般用來表示時序邏輯電路,時序邏輯電路在邏輯功能上的特點是任意時刻的輸出不僅取決于當時的輸入信號,而且還取決于電路原來的狀態(tài),或者說,還與之前的輸入有關(guān)。從電路行為上講,不管輸入如何變化,僅當時鐘的沿(上升沿或下降沿)到達時,才有可能使輸出發(fā)生變化[7]。這里以經(jīng)常用到的D觸發(fā)器為例,其仿真圖如圖1所示。
上面所述的D 觸發(fā)器,賦值語句為q<=a|b,等式右端為wire型變量。再舉個多敏感信號的時序邏輯電路的例子,比如帶有清零端的16 分頻,其仿真圖如圖2所示。
只要在always塊的敏感信號表中定義有效的時鐘沿,敏感詞的作用立竿見影,然后使用過程賦值語句對信號賦值,就可以實現(xiàn)時序邏輯電路。
2 敏感信號為電平信號
always語句中的敏感信號如果為電平敏感事件,一般用來表示組合邏輯電路,組合邏輯電路的特點是輸出信號只是當前時刻輸入信號的函數(shù),與其他時刻的輸入狀態(tài)無關(guān),無存儲電路。從電路行為上看,其特征就是輸出信號的變化僅僅與輸入信號的電平有關(guān),不涉及對信號跳變沿的處理[8]。always電平敏感信號列表,必須將所有的輸入信號和條件判斷信號都列在信號列表中。有時不完整的信號列表會造成不同的仿真和綜合結(jié)果,因此需要保證敏感信號的完備性。在實際的PLD 器件開發(fā)中,EDA 工具都會默認將所有的輸入信號和條件判斷語句作為觸發(fā)信號,增減敏感信號列表中的信號不會對最終的執(zhí)行結(jié)果產(chǎn)生影響,因此如果期望在設(shè)計中通過修改敏感信號來得到不同的邏輯,是不能實現(xiàn)的,這也是經(jīng)常犯錯的地方,這是因為仿真器在工作時不會自動補充敏感信號表。如果缺少信號,則無法觸發(fā)和該信號相關(guān)的仿真進程,也就得不到正確的仿真結(jié)果。這里以一個2?4譯碼器為例,其仿真圖如圖3所示。
如果想用一個敏感信號來控制邏輯變化,比如當enable信號的電平發(fā)生變化時,再去譯碼,程序如下,仿真圖如圖4所示。
由圖4 可以看出,這并不是所需的結(jié)果,這就是前面所說的,系統(tǒng)自動將所有的輸入作為了敏感信號。
因此,在應(yīng)用always塊語句表述組合邏輯電路時,一定要注意敏感信號的完整性,要求觸發(fā)為所有內(nèi)部用到的信號,可以用always@(*),此時,綜合工具和仿真工具會自動將所有的敏感信號自動加入敏感信號列表。
前面已經(jīng)提到過always敏感信號不可以同時包括同一個信號的上升沿和下降沿,這兩個事件可以合并為一個電平敏感事件。在設(shè)計中,一些初學(xué)的設(shè)計者經(jīng)常在時鐘的上升沿和下降沿都進行計數(shù)器加1,以為這樣能實現(xiàn)倍頻,仿真結(jié)果如圖5所示。
從圖5中可以發(fā)現(xiàn)并沒有出現(xiàn)想要的結(jié)果,而是呈現(xiàn)出了高阻態(tài)。將直接加1運算改為直接的賦值語句,程序如下,仿真結(jié)果如圖6所示。
從圖6中可以看出,cnt8這個變量存儲的是最后一次賦值,這時當always敏感信號為電平信號,系統(tǒng)默認為組合邏輯電路,雖然將信號定義為reg 型,但只是為了滿足always 模塊中的信號必須定義為reg 型的語法要求,最終的實現(xiàn)結(jié)果中并沒有寄存器,在圖5中出現(xiàn)高阻態(tài),因為cnt8=cnt8+1是計數(shù)器,是時序邏輯電路。
3 結(jié)論
本文對Verilog語言中always塊語句中的敏感信號進行了對比探討,得到如下結(jié)論:
(1)如果敏感信號是時鐘邊沿觸發(fā)信號,表示的是時序邏輯電路,而且在描述時序電路的always 塊中的reg型信號都會被綜合成寄存器,而且時序邏輯的敏感信號列表只需要加入所用的時鐘觸發(fā)沿即可。
(2)如果敏感信號是電平觸發(fā)信號,表示的是組合邏輯電路,這里一定要注意敏感信號的完整性,即所有的輸入和判斷語句的信號都要加為敏感信號,否則,得不到想要的設(shè)計結(jié)果。
(3)在組合邏輯電路描述中,將信號定義為reg型,只是為了滿足always模塊中的信號必須定義為reg 型的語法要求,最終實現(xiàn)結(jié)果中并沒有寄存器。
參考文獻
[1] PALNITTKAR S.Verilog HDL 數(shù)字設(shè)計與綜合[M].夏宇聞,胡燕祥,刁嵐松,譯.2版.北京:電子工業(yè)出版社,2009.
[2] 孫繼榮,李志蜀,王莉,等.程序切片技術(shù)在軟件測試中的應(yīng)用[J].計算機應(yīng)用研究,2007,24(5):210?213.
[3] 寧佐林,邱智亮.PCI橋接IP Core 的Verilog HDL 實現(xiàn)[J].電子科技,2006,19(4):43?46.
[4] 趙東,耿衛(wèi)東,吳春亞,等.用FPGA 實現(xiàn)OLED 灰度級顯示[J].光電子? 激光,2002,13(6):554?558.
[5] 羅杰.Verilog HDL與數(shù)字ASIC設(shè)計基礎(chǔ)[M].武漢:華中科技大學(xué)出版社,2008.
[6] PADMANABHAN T R,SUNDARI B B T. Design through Verilog HDL [M]. New York:John Wiley & Sons,2013.
[7] CILETTI M D. Advanced digital design with the Verilog HDL [M]. 2nd ed. Beijing:Electronic Industry Press,2010.