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

?

基于FPGA的自頂向下乘法器電路設(shè)計(jì)

2018-01-11 14:37:21陳楚呂石磊孫道宗刁寅亮
關(guān)鍵詞:乘法器

陳楚+呂石磊+孫道宗+刁寅亮

摘要:自頂向下電路設(shè)計(jì)方法是FPGA電路設(shè)計(jì)的重要內(nèi)容,和傳統(tǒng)的電子產(chǎn)品設(shè)計(jì)方法有很大區(qū)別,主要是通過EDA軟件對(duì)電路設(shè)計(jì)文件進(jìn)行相關(guān)處理,最終實(shí)現(xiàn)專用集成電路的設(shè)計(jì)。本文結(jié)合移位相加型乘法器實(shí)際例子介紹了兩種電路設(shè)計(jì)輸入方式,純文本輸入利用硬件描述語言對(duì)底層元件和頂層文件的電路功能進(jìn)行描述;文本和原理圖混合輸入對(duì)電路的底層元件進(jìn)行硬件描述語言描述,而頂層文件則采用原理圖輸入方式來實(shí)現(xiàn)。對(duì)兩種輸入方式的仿真波形進(jìn)行分析,論證了設(shè)計(jì)方法的正確性,說明了兩種輸入方式的特點(diǎn)。

關(guān)鍵詞:自頂向下;硬件描述語言;文本輸入;原理圖輸入;乘法器

中圖分類號(hào):TN79 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)11-0165-02

FPGA全稱是現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array),可以通過軟件的方式實(shí)現(xiàn)數(shù)字邏輯電路設(shè)計(jì)[1],在傳統(tǒng)數(shù)字電路系統(tǒng)設(shè)計(jì)內(nèi)容的基礎(chǔ)上,增加了一系列的知識(shí)點(diǎn)。FPGA的用途比較廣泛,本文是利用FPGA進(jìn)行乘法器電路設(shè)計(jì),實(shí)現(xiàn)專用集成電路(ASIC)的功能。

在傳統(tǒng)的電子產(chǎn)品設(shè)計(jì)過程當(dāng)中,重點(diǎn)是設(shè)計(jì)電路的結(jié)構(gòu),涉及到原理圖設(shè)計(jì)、布線、焊接、調(diào)試,整個(gè)過程需要付出很長(zhǎng)的時(shí)間,一旦電路需要調(diào)整,必須重新進(jìn)行一遍之前的步驟,增加了額外的成本和時(shí)間。

而采用可編程邏輯器件對(duì)電路進(jìn)行設(shè)計(jì),重點(diǎn)是關(guān)心電路的功能,采用硬件描述語言(HDL)描述或者輸入原理圖等方式來進(jìn)行電路設(shè)計(jì)。通過EDA軟件對(duì)設(shè)計(jì)好的文本或者原理圖文件進(jìn)行編譯、綜合、適配、再編譯,生成對(duì)應(yīng)的電路網(wǎng)表文件,最后通過下載電纜配置到可編程邏輯器件芯片,該芯片就具有了設(shè)計(jì)者預(yù)期的功能。如果設(shè)計(jì)好的電路系統(tǒng)通過現(xiàn)場(chǎng)測(cè)試后,發(fā)現(xiàn)功能錯(cuò)誤或者不理想,只需要在普通電腦上運(yùn)行EDA軟件對(duì)設(shè)計(jì)文件進(jìn)行修改[2],重新編譯,生成新的網(wǎng)表文件,重新配置到可編程邏輯器件芯片,直至芯片功能滿足設(shè)計(jì)要求。上述采用可編程邏輯器件進(jìn)行電路設(shè)計(jì)的過程稱為自頂向下的電路設(shè)計(jì)技術(shù)。

相對(duì)于傳統(tǒng)的電子產(chǎn)品設(shè)計(jì)過程,自頂向下的電路設(shè)計(jì)思路通過修改設(shè)計(jì)文件就可以改變電路功能,因而具有設(shè)計(jì)周期短、節(jié)約成本、靈活性強(qiáng)、可靠性高等優(yōu)點(diǎn)。

1 自頂向下電路設(shè)計(jì)方法分類

自頂向下電路設(shè)計(jì)主要有純文本輸入、文本和原理圖混合輸入兩種方式。純文本方式是指利用硬件描述語言(HDL)描述硬件電路的功能[3],即通過寫代碼的方式來描述芯片(ASIC)功能;而原理圖輸入方式是指設(shè)計(jì)完成電路原理圖之后,利用EDA軟件自帶或用戶自定義的元件庫,按照電路原理圖進(jìn)行連接,側(cè)重于電路結(jié)構(gòu)的描述。在有的情況下,底層文件用硬件描述語言描述,由底層文件創(chuàng)建相應(yīng)的底層元件,然后采用原理圖輸入方式進(jìn)行頂層文件的設(shè)計(jì),在頂層文件中調(diào)用已創(chuàng)建的底層元件,這種輸入方式稱為文本和原理圖混合輸入方式。

1.1 純文本輸入方式

目前官方標(biāo)準(zhǔn)的硬件描述語言有兩大類,一類是VHDL語言,另外一類是Verilog HDL語言。本文采用VHDL語言來進(jìn)行電路設(shè)計(jì)[4],實(shí)現(xiàn)純文本輸入;EDA軟件采用Altera公司開發(fā)的QuartusII,利用該軟件進(jìn)行電路設(shè)計(jì)的輸入。

自頂向下電路設(shè)計(jì)的技術(shù)思路是根據(jù)電子產(chǎn)品的說明書抽象出電路的功能,用自然語言描述,接著利用VHDL語言來描述電路的功能。在設(shè)計(jì)過程當(dāng)中,需要把一個(gè)復(fù)雜的系統(tǒng)劃分為多個(gè)簡(jiǎn)單模塊,這些模塊也可以繼續(xù)劃分為規(guī)模更小的模塊??梢娫谧皂斚蛳码娐吩O(shè)計(jì)過程當(dāng)中,頂層文件是由多個(gè)底層元件組合連接而成。

1.1.1 電路工作原理

本文以移位相加型6位乘法器為例子來說明自頂向下的電路設(shè)計(jì)思路[5]。兩個(gè)6位的二進(jìn)制數(shù)進(jìn)行相乘可以采用移位相加的原理來實(shí)現(xiàn),乘2由邏輯左移1位來實(shí)現(xiàn),而乘4由邏輯左移2位來實(shí)現(xiàn),以此類推,最后把所有邏輯左移的中間結(jié)果累加起來,獲得相乘結(jié)果。由乘法器的移位相加原理可知,整個(gè)電路系統(tǒng)可以劃分為4個(gè)子模塊,即頂層文件由4個(gè)底層元件組成,分別是:右移移位寄存器、輸入數(shù)據(jù)開關(guān)、邏輯左移電路、6位相加器。

具體的工作過程:參與乘法的其中一個(gè)數(shù)進(jìn)入到右移移位寄存器,在輸入數(shù)據(jù)開關(guān)模塊利用右移移位寄存器的逐位輸入對(duì)另外一個(gè)參與相乘的數(shù)進(jìn)行控制輸出;邏輯左移電路對(duì)鎖存進(jìn)來的數(shù)據(jù)進(jìn)行邏輯左移,并把上一周期的高7位數(shù)據(jù)和當(dāng)前低5位數(shù)據(jù)并置,輸出12位相乘結(jié)果,同時(shí)截取高6位數(shù)據(jù)傳送到6位加法器和另外一個(gè)6位輸入數(shù)據(jù)相加;6位加法器完成數(shù)據(jù)邏輯左移中間結(jié)果的累加功能,輸出7位數(shù)據(jù)。

1.1.2 輸入步驟

(1)運(yùn)行QuartusII軟件,進(jìn)入到VHDL文本輸入界面。根據(jù)上述的原理分析,逐一輸入4個(gè)模塊的VHDL代碼,逐一完成存盤、編譯、仿真等步驟;

(2)利用VHDL語言的component例化語句,調(diào)用步驟(1)已完成設(shè)計(jì)的4個(gè)底層元件,利用端口映射port map語句實(shí)現(xiàn)底層元件在頂層文件的端口連接關(guān)系;調(diào)用4個(gè)底層元件及端口映射的頂層文件部分代碼如下:

component accu is

port(clk,clr:in std_logic;

d:in std_logic_vector(6 downto 0);

q:out std_logic_vector(11 downto 0);

qqq:out std_logic_vector(5 downto 0));

end component;

component regshift is

port(clk,load:in std_logic;

din:in std_logic_vector(5 downto 0);endprint

qb:out std_logic );

end component;

component switchdata is

port(abin:in std_logic;

din:in std_logic_vector(5 downto 0);

dout:out std_logic_vector(5 downto 0));

end component;

component adder is

port( a,b:in std_logic_vector(5 downto 0);

s:out std_logic_vector(6 downto 0) );

end component;

……

u1:accu port map(clk=>clk,clr=>load,d=>net4,

q=>q,qqq=>net3);

u2:regshift port map(clk=>clk,load=>load,

din=>a,qb=>net1);

u3:switchdata port map(abin=>net1,din=>b,

dout=>net2);

u4:adder port map(a=>net3,b=>net2,s=>net4);

(3)對(duì)頂層文件進(jìn)行存盤、編譯、仿真等步驟,觀察仿真波形是否達(dá)到設(shè)計(jì)要求。

1.1.3 仿真結(jié)果分析

從頂層文件的仿真波形[6]可以看出,如圖1所示兩個(gè)相乘的6位二進(jìn)制數(shù)分別為:1B和3D,得到最終的12位相乘結(jié)果是66F,同時(shí)也可以看出移位相加過程的中間累加結(jié)果隨著時(shí)鐘觸發(fā)而跳變。仿真波形驗(yàn)證了底層元件和頂層文件VHDL代碼描述是正確的。

1.2 文本和原理圖混合輸入方式

在實(shí)際的電路設(shè)計(jì)當(dāng)中,經(jīng)常會(huì)采用底層元件用純文本描述,而頂層文件用原理圖來描述的混合輸入方式,移位相加型6位乘法器頂層文件原理圖如圖2所示,由移位寄存器模塊(regshift)、選通模塊(switchdata)、加法器模塊(adder)、累加模塊(accu)組成,實(shí)現(xiàn)整個(gè)電路系統(tǒng)的設(shè)計(jì)。

1.2.1 輸入步驟

(1)在VHDL文本輸入界面編輯各個(gè)子模塊的底層文件,利用QuartusII軟件生成底層元件;

(2)在原理圖輸入界面調(diào)用步驟(1)生成的底層元件,用連線的方式完成頂層文件的電路原理圖設(shè)計(jì);

(3)對(duì)頂層文件進(jìn)行存盤、編譯、仿真等步驟,觀察仿真波形是否達(dá)到設(shè)計(jì)要求。

1.2.2 仿真結(jié)果分析

仿真波形和純文本輸入方式一致,驗(yàn)證了底層元件VHDL代碼和頂層文件原理圖混合輸入方式是可行的。

1.3 純文本輸入和原理圖輸入的比較

(1)原理圖輸入方式直接用連線的方式在EDA軟件的輸入界面繪制電路原理圖,這種方式的特點(diǎn)是直觀、方便,適合小規(guī)模的簡(jiǎn)單電路系統(tǒng)設(shè)計(jì);

(2)純文本輸入方式通過編寫硬件描述語言代碼來描述電路功能[7],具有對(duì)電路功能的抽象作用。由于硬件描述語言表達(dá)的豐富多樣性,因而純文本輸入方式可以對(duì)大規(guī)模的復(fù)雜電路系統(tǒng)進(jìn)行設(shè)計(jì);

(3)文本和原理圖混合輸入結(jié)合了兩種輸入方式的優(yōu)點(diǎn)。底層元件側(cè)重于功能描述,采用文本輸入;頂層文件側(cè)重于結(jié)構(gòu)描述,采用原理圖描述。

2 設(shè)計(jì)過程的注意事項(xiàng)

(1)同一工程的所有文件必須要存放在同一工程目錄(文件夾)下,工程名字必須是英文;對(duì)當(dāng)前文件進(jìn)行編譯之前,要把當(dāng)前文件設(shè)置為頂層文件;必須在文件打開的界面下,才能創(chuàng)建該文件所對(duì)應(yīng)的元件,擴(kuò)展名為bsf;

(2)采用文本輸入方式時(shí),存盤的文件名必須和代碼的實(shí)體名一致,擴(kuò)展名為vhd;使用component例化語句時(shí),要注意端口映射語句里面的端口順序和底層文件的端口定義順序一致;

(3)采用原理圖輸入方式時(shí),注意檢查連線的交叉點(diǎn)問題;文件存盤的擴(kuò)展名為bdf,注意調(diào)用自創(chuàng)建元件的路徑和調(diào)用EDA軟件自帶元件庫的路徑。

3 結(jié)語

本文對(duì)6位乘法器的FPGA自頂向下電路設(shè)計(jì)方法進(jìn)行了闡述,通過移位相加型乘法器重點(diǎn)介紹了純文本輸入方式、文本和原理圖混合輸入方式[8]的步驟。在實(shí)際的設(shè)計(jì)過程當(dāng)中,結(jié)合EDA軟件先對(duì)各個(gè)模塊電路進(jìn)行仿真,然后對(duì)頂層電路進(jìn)行仿真,整個(gè)設(shè)計(jì)思路就會(huì)清晰,排查錯(cuò)誤就會(huì)更方便。

參考文獻(xiàn)

[1]李定川.FPGA技術(shù)在汽車電子中的應(yīng)用[J].汽車電器,2009,8:1-4.

[2]周寧寧,劉勝.基于FPGA技術(shù)的CPU模型機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[J].南京郵電學(xué)院學(xué)報(bào),2003,23(1):77-80.

[3]劉強(qiáng),方錦清,趙耿,李永.基于FPGA技術(shù)的混沌加密系統(tǒng)研究[J].物理學(xué)報(bào),2012,61(13):78-83.

[4]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第五版)[M].科學(xué)出版社,2013.

[5]陳友榮,楊海波.基于FPGA技術(shù)視頻采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)有線電視,2008,4:382-387.

[6]文璧,張潔,徐謙.基于無線射頻與FPGA技術(shù)的數(shù)據(jù)采集系統(tǒng)[J].中國(guó)測(cè)試,2009,35(4):40-43.

[7]王春花,黃厚寬,馬聰.一種基于FPGA技術(shù)的虛擬邏輯分析儀的研究與實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2000,3:39-42.

[8]王建軍.用FPGA技術(shù)實(shí)現(xiàn)數(shù)字通信中的擾碼和解擾[J].電子技術(shù)應(yīng)用,1998,(5):48-49.endprint

Abstract:From top to bottom circuit design mean is the emphasis during FPGA circuit design. There is great difference between this mean and traditional electronic design. From top to bottom circuit design mean processes circuit design file by the EDA software in order to fulfill application specific integrated circuit design. In this paper it introduces two circuit design input means in the shift and accumulate type multiplier example. The pure text input mean describes the top level and bottom level circuit behavior by hardware description language. The composed mean of text input and schematic input describes the bottom level component by hardware description language, on the same time the top level file will be fulfilled by the schematic input. There is analysis of simulate waveform about two different input means, it proves these design means are right and concludes their characteristics.

Key Words:from top to bottom;hardware description language;text input;schematic input;multiplierendprint

猜你喜歡
乘法器
一種基于中國(guó)剩余定理的高效乘法器設(shè)計(jì)
一種低開銷的近似乘法器設(shè)計(jì)
基于Karatsuba和Vedic算法的快速單精度浮點(diǎn)乘法器
一種自動(dòng)生成Wallace樹形乘法器Verilog源代碼方法
基于FPGA的流水線單精度浮點(diǎn)數(shù)乘法器設(shè)計(jì)*
基于VHDL的乘法器的設(shè)計(jì)與對(duì)比
基于BoothCSD混合編碼的模2n+1乘法器的設(shè)計(jì)
電子器件(2014年2期)2014-09-26 08:58:48
復(fù)數(shù)乘法運(yùn)算的優(yōu)化方法研究與實(shí)現(xiàn)
乘法器模塊在FPGA中的實(shí)現(xiàn)
基于FPGA 的數(shù)字乘法器性能比較*
電子器件(2011年6期)2011-08-09 08:07:22
越西县| 盐边县| 济源市| 贵港市| 天台县| 贡觉县| 孙吴县| 会同县| 苗栗市| 奈曼旗| 巢湖市| 定日县| 五家渠市| 孟州市| 仲巴县| 奎屯市| 宁陕县| 甘肃省| 宜宾市| 名山县| 禹州市| 龙游县| 喀什市| 汉源县| 德化县| 法库县| 若羌县| 利川市| 高邑县| 鹤山市| 永年县| 天等县| 溧水县| 资阳市| 杭锦后旗| 原阳县| 兴业县| 田东县| 盐边县| 济宁市| 克山县|