浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » EDA/PLD

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

發(fā)布時間:2008/5/28 0:00:00 訪問次數(shù):562

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)的多種模式。可以說eda產(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)點(diǎn):它是一種非常容易掌握的硬件描述語言,只要有c語言的編程基礎(chǔ),一般經(jīng)過2~3個月的認(rèn)真學(xué)習(xí)和實(shí)際操作就能掌握這種設(shè)計技術(shù)。并且完成同一功能verilog hdl的程序條數(shù)一般僅為vhdl的1/3。而vhdl設(shè)計技術(shù)則不很直觀,需要有eda編程基礎(chǔ),通常需要有多余半年的專業(yè)培訓(xùn)才能掌握這們技術(shù)?梢姡胿erilog hdl語言有更高的優(yōu)越性。


2 設(shè)計實(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)點(diǎn)之一。并且在頂層設(shè)計中,要對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行描述。而功能塊實(shí)際的邏輯功能和具體的實(shí)現(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兩個語句之間實(shí)現(xiàn)特定的功能的。每個模塊都由兩部分組成,一部分描述接口;另一部分描述邏輯功能,即定義輸入是如何影響輸出的。如程序中的sequdet(x,z,clk,rst)就是模塊的端口,聲明了模塊的輸入、輸出口。接下來就是模塊中最重要的部分邏輯功能的定義。在模塊中產(chǎn)生邏輯,verilog hdl語言有3種方法:

 。ǎ保┯谩癮ssign”聲明語句。這種方法很簡單,只需寫一個“assign”,后面再加一個方程式即可。這也是最常用的方法之一。如程序中的assign z==(state==d &am

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)點(diǎn):它是一種非常容易掌握的硬件描述語言,只要有c語言的編程基礎(chǔ),一般經(jīng)過2~3個月的認(rèn)真學(xué)習(xí)和實(shí)際操作就能掌握這種設(shè)計技術(shù)。并且完成同一功能verilog hdl的程序條數(shù)一般僅為vhdl的1/3。而vhdl設(shè)計技術(shù)則不很直觀,需要有eda編程基礎(chǔ),通常需要有多余半年的專業(yè)培訓(xùn)才能掌握這們技術(shù)。可見,用verilog hdl語言有更高的優(yōu)越性。


2 設(shè)計實(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)點(diǎn)之一。并且在頂層設(shè)計中,要對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行描述。而功能塊實(shí)際的邏輯功能和具體的實(shí)現(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兩個語句之間實(shí)現(xiàn)特定的功能的。每個模塊都由兩部分組成,一部分描述接口;另一部分描述邏輯功能,即定義輸入是如何影響輸出的。如程序中的sequdet(x,z,clk,rst)就是模塊的端口,聲明了模塊的輸入、輸出口。接下來就是模塊中最重要的部分邏輯功能的定義。在模塊中產(chǎn)生邏輯,verilog hdl語言有3種方法:

 。ǎ保┯谩癮ssign”聲明語句。這種方法很簡單,只需寫一個“assign”,后面再加一個方程式即可。這也是最常用的方法之一。如程序中的assign z==(state==d &am

相關(guān)IC型號

熱門點(diǎn)擊

 

推薦技術(shù)資料

聲道前級設(shè)計特點(diǎn)
    與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!