亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CPLD/FPGA的VHDL語言電路優(yōu)化設(shè)計(jì)

        2010-04-12 00:00:00杜志傳鄭建立
        現(xiàn)代電子技術(shù) 2010年3期

        摘 要:VHDL電路的優(yōu)化目標(biāo)是充分利用CPLD/FPGA芯片的內(nèi)部資源,使設(shè)計(jì)文件能適配到一定規(guī)模的CPLD/FPGA芯片中,并提高系統(tǒng)的工作速度和降低系統(tǒng)成本。分析VHDL語言的特點(diǎn),并從設(shè)計(jì)思想、語句運(yùn)用和描述方法等方面對(duì)電路進(jìn)行優(yōu)化,提出了利用串行化設(shè)計(jì)思想和外擴(kuò)E2PROM的方法對(duì)VHDL電路進(jìn)行優(yōu)化,通過對(duì)比實(shí)驗(yàn),驗(yàn)證了這兩種方法能有效減少程序占用的宏單元(Macro Cell)。

        關(guān)鍵詞:VHDL;CPLD/FPGA;電路設(shè)計(jì);優(yōu)化

        中圖分類號(hào):TP930 文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1004-373X(2010)03-191-03

        Optimized Design of Circuits in VHDL Based on CPLD/FPGA

        DU Zhichuan,ZHENG Jianli

        (School of Medical Instrument and Food Engineering,University of Shanghai for Science and Technology,Shanghai,200093,China)

        Abstract:The optimized design of VHDL is for making full use of hardware resources provided by CPLD/FPGA,making the design suit for certain scale of CPLD/FPGA chip,increasing the system′s speed and reducing system′s costs.The advantages of VHDL language are analysed and the circuit design is optimized from the design idea,the use of statements,coding style.In this paper,serial design methods and the use of E2PROM to optimize the circuit design are proposed,these two methods are proved to be effective in reducing Macro Cell occupied by the program.

        Keywords:VHDL;CPLD/FPGA;circuit design;optimization

        0 引 言

        VHDL(Very High Speed Integrated Circuit Hardware Description Language)是IEEE工業(yè)標(biāo)準(zhǔn)硬件描述語言,是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來的[1]。它是一種面向設(shè)計(jì)、多層次的硬件描述語言,是集行為描述、RTL描述、門級(jí)描述功能為一體的語言,并已成為描述、驗(yàn)證和設(shè)計(jì)數(shù)字系統(tǒng)中最重要的標(biāo)準(zhǔn)語言之一[2,3]。由于VHDL在語法和風(fēng)格上類似于高級(jí)編程語言,可讀性好,描述能力強(qiáng),設(shè)計(jì)方法靈活,可移植性強(qiáng),因此它已成為廣大EDA工程師的首選。目前,使用VHDL語言進(jìn)行CPLD/FPGA設(shè)計(jì)開發(fā),Altera和Lattice已經(jīng)在開發(fā)軟件方面提供了基于本公司芯片的強(qiáng)大開發(fā)工具。但由于VHDL設(shè)計(jì)是行為級(jí)設(shè)計(jì),所帶來的問題是設(shè)計(jì)者的設(shè)計(jì)思想與電路結(jié)構(gòu)相脫節(jié),而且其在設(shè)計(jì)思路和編程風(fēng)格等方面也存在差異,這些差異會(huì)對(duì)系統(tǒng)綜合后的電路整體性能產(chǎn)生重要的影響。

        在VHDL語言電路優(yōu)化設(shè)計(jì)當(dāng)中,優(yōu)化問題主要包括面積優(yōu)化和速度優(yōu)化[4]。面積優(yōu)化是指CPLD/FPGA的資源利用率優(yōu)化,即用盡可能少的片內(nèi)資源實(shí)現(xiàn)更多電路功能;速度優(yōu)化是指設(shè)計(jì)系統(tǒng)滿足一定的速度要求,即用更多的片內(nèi)資源換取更快的處理速度,常用于視頻信號(hào)采集系統(tǒng)和通信系統(tǒng)之中。面積優(yōu)化和速度優(yōu)化通常是一對(duì)矛盾,一般情況下,速度指標(biāo)是首要的,在滿足速度要求的前提下,盡可能實(shí)現(xiàn)面積優(yōu)化[5]。因此,本文結(jié)合在設(shè)計(jì)超聲探傷數(shù)據(jù)采集卡過程中的CPLD編程經(jīng)驗(yàn),提出串行設(shè)計(jì)、防止不必要鎖存器的產(chǎn)生、使用狀態(tài)機(jī)簡(jiǎn)化電路描述、資源共享[6],利用E2PROM芯片節(jié)省片內(nèi)資源等方法對(duì)VHDL電路進(jìn)行優(yōu)化。

        1 VHDL電路優(yōu)化設(shè)計(jì)的方法

        優(yōu)化設(shè)計(jì)是可編成邏輯設(shè)計(jì)的精華所在,如何節(jié)省所占用的面積、如何提高設(shè)計(jì)的性能是可編成邏輯設(shè)計(jì)的核心,這兩點(diǎn)往往也成為一個(gè)設(shè)計(jì)甚至項(xiàng)目成敗的關(guān)鍵因素[7]。下面結(jié)合超聲探傷數(shù)據(jù)采集卡設(shè)計(jì)過程中,并基于Altera公司的EPM7192 CPLD芯片的編程經(jīng)歷來論述VHDL電路的優(yōu)化方法。

        1.1 采用串行設(shè)計(jì)代替并行設(shè)計(jì)

        串行設(shè)計(jì)是指把原來單個(gè)時(shí)鐘周期內(nèi)完成的并行操作的邏輯功能分割出來,提取相同的功能單元,在時(shí)間上分時(shí)復(fù)用這些功能單元,在滿足系統(tǒng)速度要求的前提下,用多個(gè)時(shí)鐘周期來完成單個(gè)時(shí)鐘周期即可完成的功能。

        根據(jù)項(xiàng)目的要求,超聲探傷數(shù)據(jù)采集卡要有5個(gè)模擬通道,每隔125 μs就會(huì)采集到330個(gè)點(diǎn)。如果等5個(gè)超聲通道采樣結(jié)束后再進(jìn)行數(shù)據(jù)處理和傳輸,幾乎是不可能滿足該超聲探傷系統(tǒng)的實(shí)時(shí)性要求,而且數(shù)據(jù)量也遠(yuǎn)遠(yuǎn)超過ARM板上總線接口的傳輸速率2 MB/s。對(duì)于這么高的實(shí)時(shí)性要求,最好的解決辦法是在CPLD內(nèi)部進(jìn)行數(shù)據(jù)壓縮,即邊采集邊壓縮,以滿足系統(tǒng)使用的ARM板的總線速率要求。經(jīng)過系統(tǒng)評(píng)估,每個(gè)超聲通道只需保留一個(gè)最大值即可滿足系統(tǒng)的性能要求。在這里,通過在三個(gè)8位數(shù)A,B,C中找出最大值的例子來說明串行設(shè)計(jì)方法的優(yōu)勢(shì),代碼如下所示。

        程序一:

        signal A:std_logic_vector(7 downto 0);

        signal B:std_logic_vector(7 downto 0);

        signal C:std_logic_vector ( 7 downto 0);

        process(clk)

        begin

        if( clk′event and clk=′1′) then

        A<=AD_RESULT;

        B<=A;

        C<=B;

        else

        1;

        end if;

        end process;

        process(A,B,C)

        variable max : std_logic_vector (7 downto 0);

        begin

        if(A > B) then

        if (A < = C) then

        max :=C;

        else

        max :=A;

        end if;

        else

        if(B < = C)then

        max:=C;

        else

        max:=B;

        end if;

        end if;

        end process;

        程序二:

        signal max : std_logic_vector(7 downto 0);

        process(clk)

        variable temp: std_logic_vector(7 downto 0);

        begin

        if( clk′event and clk=′1′ ) then

        temp:=AD_RESULT;

        if(temp >= max)then

        max<=temp;

        else

        1;

        end if;

        else

        1;

        end if;

        end process;

        程序一是用并行方法設(shè)計(jì),而程序二是采用串行方法設(shè)計(jì)。從表1的實(shí)驗(yàn)數(shù)據(jù)可見,采用串行方法以后,電路的優(yōu)化效果比較明顯。優(yōu)化前,程序一需要消耗38個(gè)宏單元(Micro Cell),一個(gè)時(shí)鐘周期即可完成找最大值操作;優(yōu)化后,實(shí)現(xiàn)相同的邏輯功能程序二僅需要12個(gè)宏單元,但需要3個(gè)時(shí)鐘周期才能完成一次運(yùn)算,優(yōu)化率達(dá)68.4%。值得注意的是,此方法是以速度換取資源的方法,只適用于對(duì)速度要求不高的系統(tǒng)。

        表1 優(yōu)化前后資源使用情況

        程序名稱實(shí)驗(yàn)平臺(tái)器件消耗宏單元個(gè)數(shù) /個(gè)

        程序一程序二

        Quartus II 7.2EPM7192SQC160-1538

        12

        1.2 防止不必要鎖存器的產(chǎn)生

        在VHDL設(shè)計(jì)中,使用語句不當(dāng)也是導(dǎo)致電路復(fù)雜化的原因之一,這使得綜合后的電路當(dāng)中存在很多不必要的鎖存器,降低電路的工作速度[8]。因此,在設(shè)計(jì)一個(gè)邏輯電路時(shí),設(shè)計(jì)人員應(yīng)該避免由于VHDL使用習(xí)慣的問題,無意識(shí)地在電路中添加不必要的鎖存器。由于IF或者CASE語句較容易引入鎖存器,所以當(dāng)語句的判斷條件不能覆蓋所有可能的輸入值的時(shí)候,邏輯反饋就容易形成一個(gè)鎖存器。當(dāng)然,隨著高級(jí)編譯軟件的出現(xiàn),如Quartus Ⅱ 7.2,這樣的問題通過編譯軟件已經(jīng)得到很好的解決。對(duì)一個(gè)設(shè)計(jì)人員而言,有意識(shí)地防止不必要鎖存器的產(chǎn)生可以加快編譯速度。

        在超聲探傷數(shù)據(jù)采集卡VHDL程序設(shè)計(jì)當(dāng)中,涉及10 MHz系統(tǒng)時(shí)鐘clk的同步D觸發(fā)器的設(shè)計(jì),即每當(dāng)clk時(shí)鐘信號(hào)的上升沿到來時(shí),將輸入信號(hào)in的值賦給輸出信號(hào)out,代碼如下所示。

        程序三:

        process ( clk )

        begin

        if ( clk′event and clk=′1′ ) then

        out <= in;

        end if;

        end process;

        程序四:

        process(clk)

        begin

        if ( clk′event and clk=′1′ ) then

        out <= in;

        else

        1;

        end if;

        end process;

        通過對(duì)比,程序四比程序三只多了一條空語句,但這樣做可有效防止綜合器生成不必要鎖存器,并提高電路的工作速度。

        1.3 使用狀態(tài)機(jī)簡(jiǎn)化電路描述

        由于狀態(tài)機(jī)的結(jié)構(gòu)模式簡(jiǎn)單,有相對(duì)固定的設(shè)計(jì)模板,特別是VHDL支持定義符號(hào)化枚舉類型狀態(tài),這就為VHDL綜合器充分發(fā)揮其強(qiáng)大的優(yōu)化功能提供了有利條件[9]。因此采用狀態(tài)機(jī)比較容易地設(shè)計(jì)出高性能的時(shí)序邏輯模塊,在超聲探傷數(shù)據(jù)采集卡的CPLD程序設(shè)計(jì)中,使用有限元狀態(tài)機(jī)(FSM)設(shè)計(jì)CY7C4225 1K×16 b FIFO芯片的讀寫控制模塊,并且達(dá)到很好的效果,邏輯轉(zhuǎn)換圖如圖1所示。實(shí)踐證明,實(shí)現(xiàn)相同的邏輯功能,使用狀態(tài)機(jī)設(shè)計(jì)能使設(shè)計(jì)的電路得到更好的優(yōu)化。

        圖1 寫FIFO邏輯轉(zhuǎn)換圖

        1.4 資源共享

        資源共享的思想是通過使用數(shù)據(jù)緩沖器或多路選擇器等方法來共享數(shù)據(jù)通道中占用資源較多的模塊[10],如算法單元。通過共享電路單元模塊可有效提高芯片內(nèi)部資源的利用率,達(dá)到優(yōu)化電路的目的。

        1.5 利用E2PROM芯片節(jié)省片內(nèi)資源

        在用VHDL進(jìn)行項(xiàng)目開發(fā)的過程中,經(jīng)常需要存儲(chǔ)一些配置參數(shù)值。理論上講,每存儲(chǔ)一個(gè)字節(jié)的配置參數(shù)需要使用8個(gè)CPLD宏單元,因此在CPLD內(nèi)部存儲(chǔ)這些參數(shù)并不是好的方案,除非使用的CPLD芯片已集成了E2PROM存儲(chǔ)單元。例如,在設(shè)計(jì)超聲探傷系統(tǒng)的數(shù)據(jù)采集卡的過程中,每個(gè)通道的采樣數(shù)都需要保存在CPLD里面。由于項(xiàng)目初期芯片選型不當(dāng),

        選擇一款EPM7192S160-15,該款芯片內(nèi)部只有192個(gè)宏單元,因此考慮把參數(shù)存儲(chǔ)在外擴(kuò)的E2PROM芯片24WC02中。經(jīng)實(shí)驗(yàn)證明,在CPLD內(nèi)部實(shí)現(xiàn)一個(gè)I2C控制器僅需要43個(gè)宏單元。由此可見,當(dāng)初始化參數(shù)大于5個(gè)的時(shí)候,通過外擴(kuò)E2PROM芯片來存儲(chǔ)配置參數(shù)是可行的,只需在CPLD/FPGA芯片內(nèi)實(shí)現(xiàn)I2C控制器即可方便地讀寫E2PROM存儲(chǔ)芯片。

        2 結(jié) 語

        使用VHDL進(jìn)行CPLD/FPGA電路設(shè)計(jì)時(shí),要根據(jù)實(shí)際項(xiàng)目的具體情況,合理地劃分項(xiàng)目功能,并用VHDL實(shí)現(xiàn)相應(yīng)的功能模塊。用模塊來構(gòu)建系統(tǒng),可有效地優(yōu)化模塊間的結(jié)構(gòu)和減少系統(tǒng)的冗余度,并在模塊設(shè)計(jì)過程中始終貫徹以上的優(yōu)化設(shè)計(jì)原則,借助于強(qiáng)大的綜合開發(fā)軟件進(jìn)行優(yōu)化,才能達(dá)到最優(yōu)化電路的目的。

        參考文獻(xiàn)

        [1]趙桂青,于會(huì)山,穆健,等.VHDL編碼中面積優(yōu)化探討[J].嵌入式軟件應(yīng)用,2007,23(1):116-117.

        [2]吳繼華,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出版社,2005.

        [3]Steve Carison.VHDL Design(Representation Synthesis)[M].New Jersey:Prentice Hall,2000.

        [4]潘松.EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2004.

        [5]沈祖斌.基于FPGA/CPLD的數(shù)字系統(tǒng)設(shè)計(jì)優(yōu)化[J].江漢大學(xué)學(xué)報(bào),2006,34(1):47-49.

        [6]Bhasker J.VHDL Primer[M].3rd Edition.NJ:Prentice Hall,1999.

        [7]楊鮮艷,王珊珊,李萍,等.VHDL電路優(yōu)化設(shè)計(jì)及方法[J].航船電子工程,2007,(2):112-114.

        [8]鄔楊波,王曙光,胡建平.有限狀態(tài)機(jī)的VHDL設(shè)計(jì)及優(yōu)化[J].信息技術(shù),2004,28(1):75-78.

        [9]Volnei A.Pedroni-Circuit Design with VHDL[M].MIT Press,2004.

        [10]任勇峰,莊新敏.VHDL與硬件實(shí)現(xiàn)速成[M].北京:國(guó)防工業(yè)出版社,2005.

        av永久天堂一区二区三区蜜桃 | 国产精品一区二区韩国av| 久久精品丝袜高跟鞋| 熟妇人妻av中文字幕老熟妇| 国产精品爆乳在线播放| 人妻精品人妻一区二区三区四五| 青青草在线这里只有精品| 亚洲色成人www永久在线观看| 国精产品一区一区三区| 又粗又粗又黄又硬又深色的| 日韩AV有码无码一区二区三区 | 久久久精品国产免大香伊| 熟妇高潮一区二区三区| 亚洲情a成黄在线观看动漫尤物| 国产少妇一区二区三区| 少妇人妻综合久久中文字幕| 国产特级毛片aaaaaaa高清| 青青草97国产精品免费观看| 久久精品中文字幕极品| 亚洲天堂av中文字幕| 无码爽视频| 97久久精品午夜一区二区| 精品一二区| 日韩五码一区二区三区地址| 精品国产亚洲亚洲国产| 幻女bbwxxxx在线视频| 妺妺窝人体色www在线直播| 国产高清不卡二区三区在线观看| 亚洲综合欧美色五月俺也去| 五月婷婷俺也去开心| 亚洲第一免费播放区| 国产婷婷成人久久av免费| 中国丰满人妻videoshd| 玩两个丰满老熟女| 丰满人妻一区二区乱码中文电影网 | 成人国产精品免费视频| 久久久久无码中文字幕| 久久国产精品婷婷激情| 4399理论片午午伦夜理片| 国产WW久久久久久久久久 | 91热爆在线精品|