国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實用計數(shù)器的VHDL與Verilog HDL行為建模對比研究

2022-10-15 15:54楊云海章芬芬
現(xiàn)代信息科技 2022年15期
關(guān)鍵詞:計數(shù)器端口計數(shù)

楊云海,章芬芬

(韶關(guān)學(xué)院 信息工程學(xué)院,廣東 韶關(guān) 512005)

0 引 言

硬件描述語言(以下簡稱為HDL)在電子設(shè)計自動化(以下簡稱EDA)過程中,可以用于數(shù)字電路的建模和仿真。計數(shù)器是一種常用的數(shù)字電路模塊,在設(shè)計的過程經(jīng)常會被設(shè)計、調(diào)用。使用目前最為常用的兩種HDL(即VHDL與Verilog HDL)對實用計數(shù)器進(jìn)行行為建模,并對比兩種語言的建模結(jié)果,對實用數(shù)字電路的設(shè)計有一定的指導(dǎo)作用,有一定的研究意義。

1 實用計數(shù)器功能規(guī)劃

考慮到計數(shù)器模塊的實用性,能更方便地引入到更高層級的設(shè)計中,計數(shù)器模塊的控制接口要比較豐富。除了要有時鐘(clk)輸入以外,還要包含的控制信號有:異步清零(rst)、時鐘使能(en)、同步裝載(ld),等等;需要留有4位的裝載數(shù)據(jù)輸入端口(din);需要安排4位的計數(shù)輸出端口(dout)和1位的進(jìn)位(計滿)輸出端口(cout)。

2 實用計數(shù)器的VHDL行為建模

按照功能規(guī)劃,使用VHDL行為描述語句對電路進(jìn)行建模。電路模型的VHDL代碼如下:

在程序中,由于需要使用了標(biāo)準(zhǔn)邏輯矢量(STD_LOGIC_VECTOR)與整形數(shù)據(jù)的加法操作,對“+”運算符進(jìn)行了重載,并且使用了數(shù)據(jù)類型轉(zhuǎn)換函數(shù),在整形與標(biāo)準(zhǔn)邏輯矢量之間進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。因此,需要打開IEEE庫中相應(yīng)的包。

在結(jié)構(gòu)體中定義了一個“q”信號,在“reg”進(jìn)程中定義了一個“q1”變量。其中,“q1”變量用于暫存計數(shù)的結(jié)果,“q”信號用于把“q1”的計數(shù)結(jié)果傳遞出進(jìn)程以外。這樣的設(shè)置,層次分明,結(jié)構(gòu)清晰,提高了代碼的可讀性,為以后對模塊的修改提供了方便。

在代碼中,使用了2個進(jìn)程(Process)表達(dá)電路的行為,進(jìn)程的標(biāo)號分別為:“reg”和“com”。其中,“reg”進(jìn)程表達(dá)了電路的時序邏輯,在時鐘信號“CLK”的推動下,計數(shù)器進(jìn)行計數(shù);“com”進(jìn)程表達(dá)了電路的組合邏輯,根據(jù)“q”信號的取值情況,對計數(shù)輸出“dout”和進(jìn)位輸出“cout”進(jìn)行了驅(qū)動,把計數(shù)結(jié)果和進(jìn)位結(jié)果傳遞出模塊。

在時序進(jìn)程“reg”中,由于需要對各種控制信號進(jìn)行判斷,使用了多層次嵌套的“if”語句。進(jìn)程敏感信號列表與“if”語句的嵌套,實現(xiàn)了電路的異步復(fù)位、時鐘使能和同步裝載的控制功能。

3 實用計數(shù)器的Verilog HDL行為建模

按照功能規(guī)劃,使用Verilog HDL行為描述語句對電路進(jìn)行建模。電路模型的Verilog HDL代碼如下:

在代碼中,先是對電路的輸入、輸出端口進(jìn)行了定義,并定義了一個名為“q1”的寄存器類型變量(reg),用于計數(shù)結(jié)果的保存和累加。由于使用了“q1”寄存器,輸出端口不需要在過程之內(nèi)進(jìn)行賦值操作,所以保持了輸出端口“dout”和“cout”的網(wǎng)線(net)類型屬性。

在“always”過程中,由“q1”變量實現(xiàn)對計數(shù)結(jié)果的暫存。敏感信號列表與嵌套的“if”語句實現(xiàn)了電路的異步復(fù)位、時鐘使能和同步裝載的控制功能。

“q1”的計數(shù)結(jié)果由并行的連續(xù)賦值語句傳遞給輸出端口“dout”,并通過條件賦值語句對計數(shù)結(jié)果進(jìn)行判斷后,決定進(jìn)位輸出端口“cout”的值。

4 VHDL與Verilog HDL綜合結(jié)果比較

為了方便對比實用計數(shù)器的兩次電路建模,在2次的設(shè)計中,均采用了相同的輸入、輸出端口名稱,模塊內(nèi)需要用到的信號、變量等標(biāo)識符,也采用了相同的名稱。完成電路的行為建模以后,采用了Quartus Prime平臺,選擇使用Intel公司的FPGA,Cyclone 10 LP系列,10CL006YU256C8G 型號的PLD器件,對電路分別進(jìn)行了實現(xiàn)(全程編譯,即各層級的綜合),并進(jìn)行了功能仿真。

在Quartus Prime平臺上完成全程編譯以后,VHDL與Verilog HDL兩次設(shè)計的編譯報告內(nèi)容都是一樣的,如圖1所示。

圖1 實用計數(shù)器VHDL與Verilog HDL設(shè)計的編譯報告

編譯報告顯示,2次的設(shè)計,均使用了器件上的8個邏輯單元(LE),使用了4個寄存器(Register),和13個引腳(Pin)。由編譯報告可知, 2次設(shè)計所使用的PLD器件上的邏輯資源數(shù)量,是一樣的。

通過查看2個設(shè)計的所產(chǎn)生的RTL網(wǎng)表,對比2次設(shè)計所形成的電路結(jié)構(gòu)。圖2顯示了2次設(shè)計所形成的RTL網(wǎng)表的對比。

由于2次設(shè)計所使用的輸出、輸出端口,以及設(shè)計中用到的其他標(biāo)識符都盡量統(tǒng)一了名稱,所以,兩次設(shè)計形成的RTL網(wǎng)表結(jié)構(gòu)相同,大部分元件的名稱也一致(不一致的位置,只有4位寄存器元件的名稱)。由RTL網(wǎng)表可知,兩次設(shè)計形成的結(jié)果應(yīng)該是一致的。

為了驗證設(shè)計的正確性,以及驗證2次設(shè)計所形成的結(jié)果,功能是否達(dá)到要求,功能是否一致,分別對2次設(shè)計進(jìn)行了功能仿真。圖3顯示了2個設(shè)計的功能仿真結(jié)果。

圖2 實用計數(shù)器VHDL與Verilog HDL設(shè)計結(jié)果的RTL網(wǎng)表對比

圖3 實用計數(shù)器VHDL與Verilog HDL設(shè)計結(jié)果的功能仿真結(jié)果對比

為了比較直觀地對比2次設(shè)計的仿真波形,把2個設(shè)計的仿真輸入信號設(shè)置為完全一樣。通過對比兩次仿真的輸出結(jié)果,得到的結(jié)論是——功能仿真結(jié)果完全一致。功能仿真結(jié)果的一致,也驗證了2個設(shè)計RTL網(wǎng)表基本一致的情況。

對于2次設(shè)計的功能仿真進(jìn)行分析,考查設(shè)計結(jié)果是否滿足設(shè)計需求。從圖3的仿真波形可以看出:異步復(fù)位(rst)、時鐘使能(en)、同步裝載(ld)的控制功能均已實現(xiàn);計數(shù)輸出端口“dout”的范圍是0—15,計滿時(計數(shù)到達(dá)15的時候),進(jìn)位輸出“cout”拉高。

因此,2次設(shè)計的結(jié)果是樣同的,并且都是符合功能規(guī)劃的。

5 VHDL與Verilog HDL建模方法對比

通過對比實用計數(shù)器的VHDL與Verilog HDL行為建模,比較兩種硬件描述語言在使用上的異同點。

5.1 相同的方面

使用兩種不同的HDL,在EDA流程上是相同的,即都是采用:文本設(shè)計輸入、全程編譯、設(shè)置矢量波形文件、仿真,這幾個步驟開展電路的設(shè)計與驗證。當(dāng)然,使用不同的HDL,可能要在平臺上對于仿真所使用的語言進(jìn)行設(shè)置,但并非是所有平臺都需要這一設(shè)置,早期版本的Quartus就不需要作這一設(shè)置。所以,使用不同HDL進(jìn)行設(shè)計輸入,基本不會影響EDA的各個流程。

5.2 不同的方面

使用不同的HDL進(jìn)行電路建模,最大的不同在于——不同HDL對于電路功能的描述方法。以本文實用計數(shù)器的2次建模為例,雖然2次設(shè)計所實現(xiàn)的內(nèi)容完全一樣,但不同的HDL的描述方式區(qū)別很大。經(jīng)過對比與總結(jié),得出以下使用VHDL與Verilog HDL進(jìn)行電路建模的不同之處:

(1)在程序結(jié)構(gòu)方面的不同。VHDL結(jié)構(gòu)嚴(yán)謹(jǐn),代碼的層次清晰,但要寫的代碼較多。

Verilog HDL結(jié)構(gòu)則較為自由,語句的組織比較松散,但需要寫的代碼比較少。

(2)在數(shù)據(jù)類型要求方面的不同。VHDL對于數(shù)據(jù)類型有嚴(yán)格的要求,需要引入庫、包,對運算符進(jìn)行重載,才能實現(xiàn)不同數(shù)據(jù)類型對象之間的運算(算術(shù)運算、比較運算、邏輯運算,等等)。禁止不同類型數(shù)據(jù)的對象之間的賦值。要完成賦值,必須要先進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換,因此需要引用一些包含數(shù)據(jù)類型轉(zhuǎn)換函數(shù)的包。

Verilog HDL中的數(shù)據(jù)都被看作為“矢量”,在運算和賦值時能自動轉(zhuǎn)換,設(shè)計者不需要區(qū)分?jǐn)?shù)據(jù)類型,程序中不需要進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換,即可對數(shù)據(jù)對象進(jìn)行運算和賦值等操作。

(3)與電路的映像方式不同。可綜合的HDL語句都要變成邏輯電路結(jié)構(gòu),因此,HDL可綜合語句都會和一些電路元件實現(xiàn)相應(yīng)的映射。但不同的HDL,語句與電路元件映射的方式和風(fēng)格,是有所差別的。

VHDL對于電路的行為描述能力較好,行為描述結(jié)構(gòu)清晰,邏輯清楚,易于為人們所理解,但對于電路的映射,顯得層級較高,并不能達(dá)到一一對應(yīng)的關(guān)系。

Verilog HDL的行為描述語句則與電路結(jié)構(gòu)有著較好的映射關(guān)系,比如:在本例中創(chuàng)建寄存器類型(reg)的變量,在綜合后會形成電路中的寄存器;語句中的各種條件判斷,也會映射為電路中相應(yīng)位置的各個比較器。

總之,兩種硬件描述語言各有特點,各有優(yōu)勢,無所謂孰優(yōu)孰劣。

6 結(jié) 論

本文通過對比VHDL與Verilog HDL對于實用計數(shù)器的行為模型,能得到兩種語言的不同特點,對于今后開展數(shù)字電路的建模和設(shè)計,有一定的幫助。

猜你喜歡
計數(shù)器端口計數(shù)
兩個基本計數(shù)原理A卷
煤氣與熱力(2022年2期)2022-03-09
一種端口故障的解決方案
古代的人們是如何計數(shù)的?
基于Multisim10.1的任意進(jìn)制計數(shù)器的設(shè)計與實現(xiàn)
SR620型與53230A型計數(shù)器的性能測試
算盤是個“小氣鬼”
為程序或設(shè)備在路由器上打開端口
碌曲县| 治多县| 保定市| 余姚市| 丹东市| 工布江达县| 临城县| 伊宁市| 旌德县| 荥经县| 油尖旺区| 南安市| 湘潭市| 湛江市| 民县| 武鸣县| 茂名市| 永仁县| 黔江区| 莆田市| 沁源县| 白沙| 北海市| 克东县| 岗巴县| 长丰县| 洱源县| 古田县| 太白县| 盱眙县| 扶绥县| 平安县| 伊金霍洛旗| 和田县| 遂昌县| 将乐县| 翁源县| 邵阳市| 高密市| 清流县| 敖汉旗|