音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

Verilog HDL語言在FPGA/CPLD開發(fā)中的應(yīng)用

出處:czhlcai 發(fā)布于:2007-12-21 15:52:19

1 引言
  近30年來,由于微電子學(xué)和計算機(jī)科學(xué)的迅速發(fā)展,給EDA(電子設(shè)計自動化)行業(yè)帶來了巨大的變化。特別是進(jìn)入20世紀(jì)90年代后,電子系統(tǒng)已經(jīng)從電路板級系統(tǒng)集成發(fā)展成為包括ASIC、FPGA和嵌入系統(tǒng)的多種模式??梢哉fEDA產(chǎn)業(yè)已經(jīng)成為電子信息類產(chǎn)品的支柱產(chǎn)業(yè)。EDA之所以能蓬勃發(fā)展的關(guān)鍵因素之一就是采用了硬件描述語言(HDL)描述電路系統(tǒng)。就FPGA和CPLD開發(fā)而言,比較流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因適合標(biāo)準(zhǔn)化的發(fā)展方向而終成為IEEE標(biāo)準(zhǔn)。但與VHDL相比,Verilog HDL有個的優(yōu)點:它是一種非常容易掌握的硬件描述語言,只要有C語言的編程基礎(chǔ),一般經(jīng)過2~3個月的認(rèn)真學(xué)習(xí)和實際操作就能掌握這種設(shè)計技術(shù)。并且完成同一功能Verilog HDL的程序條數(shù)一般僅為VHDL的1/3。而VHDL設(shè)計技術(shù)則不很直觀,需要有EDA編程基礎(chǔ),通常需要有多余半年的培訓(xùn)才能掌握這們技術(shù)。可見,用Verilog HDL語言有更高的優(yōu)越性。
2 設(shè)計實例
  通常設(shè)計數(shù)字電路大都采用自頂向下將系統(tǒng)按功能逐層分割的層次化設(shè)計方法,這比傳統(tǒng)自下向上的EDA設(shè)計方法有更明顯的優(yōu)勢(當(dāng)時的主要設(shè)計文件是電路圖)。因為由自頂向下的設(shè)計過程可以看出,從總體行為設(shè)計開始到終邏輯綜合,形成網(wǎng)絡(luò)表為止。每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)系統(tǒng)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)硬件的設(shè)計周期。這也是HDL語言設(shè)計系統(tǒng)硬件的突出的優(yōu)點之一。并且在頂層設(shè)計中,要對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行描述。而功能塊實際的邏輯功能和具體的實現(xiàn)形式則由下一層模塊來描述。在系統(tǒng)的底層設(shè)計中,由于其對系統(tǒng)很強(qiáng)的行為描述能力,可以不必使系統(tǒng)層層細(xì)化,從而避開具體的器件結(jié)構(gòu),從邏輯行為上直接對模塊進(jìn)行描述和設(shè)計,隨后EDA設(shè)計軟件或相應(yīng)的第三方工具軟件中的綜合器將程序自動綜合成為具體FPGA/CPLD等目標(biāo)芯片的網(wǎng)表文件,這種避開具體器件結(jié)構(gòu)的方式也是它的重要優(yōu)勢之一。
  下面以序列檢測器的設(shè)計為例具體說明。
  序列檢測器是時序數(shù)字電路中非常常見的設(shè)計之一。它的主要功能是:將一個指定的序列從數(shù)字碼流中識別出來。接下來就以設(shè)計“01101”這個序列的檢測器為例,說明Verilog HDL語言的具體應(yīng)用。設(shè)X為數(shù)字碼流輸入,Z為檢出標(biāo)記輸出,高電平表示“發(fā)現(xiàn)指定序列”,低電平表示“沒有發(fā)現(xiàn)指定的序列”。設(shè)輸入的碼流為“001101101111011111...”,則其序列檢測器的邏輯功能如表1所示。
  在時鐘2~6中,碼流X里出現(xiàn)指定序列“01101”,對應(yīng)輸出Z在第6個時鐘變?yōu)楦唠娖健?”,表示發(fā)現(xiàn)指定序列“01101”,Z輸出“1”。同理在第9個時鐘對應(yīng)輸出Z也為“1”。根據(jù)這個邏輯功能描述,我們可以分析得出狀態(tài)轉(zhuǎn)換圖(見圖1)。

  其中狀態(tài)A~E表示5位序列“01101”按順序正確地出現(xiàn)在碼流中。因為輸入碼流X是隨機(jī)的,因此可能會有很多重疊的情況發(fā)生。這樣在轉(zhuǎn)換圖中相應(yīng)的還要有狀態(tài)F和G。設(shè)初始狀態(tài)為IDLE,則有相應(yīng)的Verilog HDL語言程序如下。
module seqdet(x,z,clk,rst);
input x,clk,rst;
output z;
reg[2:0] state;
wire z;
parameter IDLE=3'd0,
A=3'd1,
B=3'd2,
C=3'd3,
D=3'd4,
E=3'd5,
F=3'd6,
G=3'd7;
assign z=(state==D && x==1)?1:0;
always@(posedge clk or negedge rst)
if(!rst)
begin
state<=IDLE;
end
else
casex(state)
IDLE:if(x==0)
state<=A;
else state<=IDLE;
A:if(x==1)
state<=B;
else state<=A;
B:if(x==1)
state<=C;
else state<=F;
C:if(x==0)
state<=D;
else state<=G;
D:if(x==1)
state<=E;
else state<=A;
E:if(x==1)
state<=C;
else state<=A;
F:if(x==0)
state<=A;
else state<=B;
G:if(x==0)
state<=F;
else state<=G;
default: state<=IDLE;
endcase
endmodule
  由上述這個程序可以看出:Verilog HDL程序是由模塊構(gòu)成的。每個模塊的內(nèi)容都是嵌在module和endmodule兩個語句之間實現(xiàn)特定的功能的。每個模塊都由兩部分組成,一部分描述接口;另一部分描述邏輯功能,即定義輸入是如何影響輸出的。如程序中的sequdet(x,z,clk,rst)就是模塊的端口,聲明了模塊的輸入、輸出口。接下來就是模塊中重要的部分邏輯功能的定義。在模塊中產(chǎn)生邏輯,Verilog HDL語言有3種方法:
 ?。ǎ保┯谩癮ssign”聲明語句。這種方法很簡單,只需寫一個“assign”,后面再加一個方程式即可。這也是常用的方法之一。如程序中的assign z==(state==D && x==1)?1:0;就表示狀態(tài)為D時又收到了1,表明收到“01101”應(yīng)使Z輸出為高電平。
  (2)用“always”塊。它常被用來描述時序邏輯,上面的程序中即用這個模塊完成了狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)化功能。
 ?。ǎ常┎捎脤嵗姆椒?。這時只要鍵入元件的名字和相連的引腳即可。這樣就可以用上面這不長的程序,完成這個對序列的檢測功能,并且邏輯描述也十分容易理解。
  上述程序輸入完成后,接下來首先要經(jīng)EDA設(shè)計軟件進(jìn)行編譯。本設(shè)計采用的是美國ALTERA公司的MAX+PLUSII軟件,經(jīng)Compiler編譯器編譯,沒有任何問題后。建網(wǎng)表、邏輯綜合、適配、劃分、時域分析、裝配等均已自動完成,并生成多個后續(xù)工作要用的文件。編譯成功表明已為所設(shè)計的項目建立了一個編程文件,但還不能說明該文件在各種情況下都有正確的響應(yīng),因此編譯通過后還要進(jìn)行功能和時序仿真,仿真結(jié)果如圖2所示。


  經(jīng)仿真發(fā)現(xiàn)輸出Z和輸入X有一段延時。通過波形很難給出定量的信號延時關(guān)系,為此我們在進(jìn)行定時分析。定時分析結(jié)果如圖3所示,從表中顯示出了“CLK”到“Z”的延遲路徑為7.6ns、“X”到“Z”的延遲路徑為6ns。這樣,經(jīng)Verilog HDL語言的文本編輯、編譯、仿真波形編輯、仿真和定時分析一系列設(shè)計步驟,設(shè)計出符合要求的數(shù)字系統(tǒng)后就可以通過編程器到指定的芯片中去。
  綜上所述,則更能體會到Verilog HDL語言的優(yōu)勢:由于它在其門級描述的底層,也就是晶體管開關(guān)的描述方面比VHDL等各種其它的HDL語言有更強(qiáng)的功能。所以在復(fù)雜數(shù)字邏輯電路和系統(tǒng)的設(shè)計仿真時更有優(yōu)勢;描述的設(shè)計思想、電路結(jié)構(gòu)和邏輯關(guān)系清晰明了,并且設(shè)計語言簡練、易學(xué)易用;其模塊化分層結(jié)構(gòu)在大規(guī)模設(shè)計時更能體現(xiàn)出優(yōu)勢。因此可以看出,Verilog HDL語言在EDA設(shè)計中相對與其他的各種硬件描述語言更有優(yōu)勢。
3 結(jié)束語
  隨著集成電路規(guī)模的越來越大,數(shù)字系統(tǒng)設(shè)計的越來越復(fù)雜,Verilog HDL語言在硬件電路設(shè)計的優(yōu)越性也會越來越顯突出。目前,數(shù)百萬門規(guī)模的FPGA/CPLD已進(jìn)入實用,Verilog HDL強(qiáng)大的系統(tǒng)描述能力、規(guī)范的設(shè)計結(jié)構(gòu)和簡潔、靈活的編程風(fēng)格會使其必將能會用來完成大數(shù)字系統(tǒng)、超大規(guī)模數(shù)字系統(tǒng)的幾乎全部設(shè)計任務(wù)。


  
關(guān)鍵詞:Verilog HDL語言在FPGA/CPLD開發(fā)中的應(yīng)用

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!