vhdl語(yǔ)言篇1
關(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 E2PROM 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)硬件描述語(yǔ)言,是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來(lái)的[1]。它是一種面向設(shè)計(jì)、多層次的硬件描述語(yǔ)言,是集行為描述、RTL描述、門級(jí)描述功能為一體的語(yǔ)言,并已成為描述、驗(yàn)證和設(shè)計(jì)數(shù)字系統(tǒng)中最重要的標(biāo)準(zhǔn)語(yǔ)言之一[2,3]。由于VHDL在語(yǔ)法和風(fēng)格上類似于高級(jí)編程語(yǔ)言,可讀性好,描述能力強(qiáng),設(shè)計(jì)方法靈活,可移植性強(qiáng),因此它已成為廣大EDA工程師的首選。目前,使用VHDL語(yǔ)言進(jìn)行CPLD/FPGA設(shè)計(jì)開發(fā),Altera和Lattice已經(jīng)在開發(fā)軟件方面提供了基于本公司芯片的強(qiáng)大開發(fā)工具。但由于VHDL設(shè)計(jì)是行為級(jí)設(shè)計(jì),所帶來(lái)的問題是設(shè)計(jì)者的設(shè)計(jì)思想與電路結(jié)構(gòu)相脫節(jié),而且其在設(shè)計(jì)思路和編程風(fēng)格等方面也存在差異,這些差異會(huì)對(duì)系統(tǒng)綜合后的電路整體性能產(chǎn)生重要的影響。
在VHDL語(yǔ)言電路優(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],利用E2PROM芯片節(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)歷來(lái)論述VHDL電路的優(yōu)化方法。
1.1 采用串行設(shè)計(jì)代替并行設(shè)計(jì)
串行設(shè)計(jì)是指把原來(lái)單個(gè)時(shí)鐘周期內(nèi)完成的并行操作的邏輯功能分割出來(lái),提取相同的功能單元,在時(shí)間上分時(shí)復(fù)用這些功能單元,在滿足系統(tǒng)速度要求的前提下,用多個(gè)時(shí)鐘周期來(lái)完成單個(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中找出最大值的例子來(lái)說(shuō)明串行設(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
B
C
else
null;
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
else
null;
end if;
else
null;
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ì)中,使用語(yǔ)句不當(dāng)也是導(dǎo)致電路復(fù)雜化的原因之一,這使得綜合后的電路當(dāng)中存在很多不必要的鎖存器,降低電路的工作速度[8]。因此,在設(shè)計(jì)一個(gè)邏輯電路時(shí),設(shè)計(jì)人員應(yīng)該避免由于VHDL使用習(xí)慣的問題,無(wú)意識(shí)地在電路中添加不必要的鎖存器。由于IF或者CASE語(yǔ)句較容易引入鎖存器,所以當(dāng)語(yǔ)句的判斷條件不能覆蓋所有可能的輸入值的時(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)的上升沿到來(lái)時(shí),將輸入信號(hào)in的值賦給輸出信號(hào)out,代碼如下所示。
程序三:
process ( clk )
begin
if ( clk′event and clk=′1′ ) then
out
end if;
end process;
程序四:
process(clk)
begin
if ( clk′event and clk=′1′ ) then
out
else
null;
end if;
end process;
通過對(duì)比,程序四比程序三只多了一條空語(yǔ)句,但這樣做可有效防止綜合器生成不必要鎖存器,并提高電路的工作速度。
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ù)緩沖器或多路選擇器等方法來(lái)共享數(shù)據(jù)通道中占用資源較多的模塊[10],如算法單元。通過共享電路單元模塊可有效提高芯片內(nèi)部資源的利用率,達(dá)到優(yōu)化電路的目的。
1.5 利用E2PROM芯片節(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芯片已集成了E2PROM存儲(chǔ)單元。例如,在設(shè)計(jì)超聲探傷系統(tǒng)的數(shù)據(jù)采集卡的過程中,每個(gè)通道的采樣數(shù)都需要保存在CPLD里面。由于項(xiàng)目初期芯片選型不當(dāng),
選擇一款EPM7192S160-15,該款芯片內(nèi)部只有192個(gè)宏單元,因此考慮把參數(shù)存儲(chǔ)在外擴(kuò)的E2PROM芯片24WC02中。經(jīng)實(shí)驗(yàn)證明,在CPLD內(nèi)部實(shí)現(xiàn)┮桓I2C控制器僅需要43個(gè)宏單元。由此可見,當(dāng)初始化參數(shù)大于5個(gè)的時(shí)候,通過外擴(kuò)E2PROM芯片來(lái)存儲(chǔ)配置參數(shù)是可行的,只需在CPLD/FPGA芯片內(nèi)實(shí)現(xiàn)I2C控制器即可方便地讀寫E2PROM存儲(chǔ)芯片。
2 結(jié) 語(yǔ)
使用VHDL進(jìn)行CPLD/FPGA電路設(shè)計(jì)時(shí),要根據(jù)實(shí)際項(xiàng)目的具體情況,合理地劃分項(xiàng)目功能,并用VHDL實(shí)現(xiàn)相應(yīng)的功能模塊。用模塊來(lái)構(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.
vhdl語(yǔ)言篇2
關(guān)鍵詞:VHDL; Max+Plus Ⅱ; 計(jì)數(shù)器; EDA技術(shù)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2010)08-0070-03
Medical Application of EDA Technology Taking VHDL Language as Core
TAN Xiao-ling, DUAN Xin-wen
(Qinghai Normal University, Xining 810008, China)
Abstract: As a new hardware description language, VHDL is mainly used for the description, simulation and automatic design of digital circuits and systems. It is the core technology of current clectronic design automation (EDA) and can be more widely used in the medical speciality and other relative fields along with the development of information technology. In this study, the counter designed with VHDL was applied to human pulse measurement. Compared to the artificial method, the results measured by such counter is more accurate and can be displayed intuitively by the digital tubes. It shows the close contact between the digital system designed with VHDL and medicine, as well as its great prospects on the medical practice. It had proved that the combination of EDA and medicine not only promotes the further application of EDA technology, but also boosts the development of medicine greatly.
Keywords:VHDL; Max+Plus Ⅱ; counter; EDA technology
0 引 言
VHDL超高速集成電路硬件描述語(yǔ)言是隨著集成電路系統(tǒng)化和高度集成化逐步發(fā)展起來(lái)的,是一種用于數(shù)字系統(tǒng)設(shè)計(jì)、測(cè)試,面向多領(lǐng)域、多層次的IEEE標(biāo)準(zhǔn)硬件描述語(yǔ)言。它從20世紀(jì)70年代作為電路設(shè)計(jì)工具誕生于美國(guó)國(guó)防部至今,已經(jīng)成為十分流行的硬件描述工具,并且為大多數(shù)EDA工具所支持/。隨著電子技術(shù)的不斷進(jìn)步,數(shù)字系統(tǒng)的設(shè)計(jì)正朝著高速度、大容量、小體積的方向發(fā)展。 傳統(tǒng)的自底而上的模式已不能滿足芯片和系統(tǒng)的設(shè)計(jì)要求。為了提高設(shè)計(jì)效率,能夠簡(jiǎn)化設(shè)計(jì)流程,大幅降低設(shè)計(jì)難度的VHDL設(shè)計(jì)方法受到廣泛關(guān)注。VHDL與其他傳統(tǒng)集成電路描述語(yǔ)言相比,具有明顯優(yōu)勢(shì)/:
(1) 功能強(qiáng)大,描述力強(qiáng)??捎糜陂T級(jí)、電路級(jí)甚至系統(tǒng)級(jí)的描述、仿真和設(shè)計(jì)。
(2) 可移植性好。對(duì)于設(shè)計(jì)和仿真工具及不同的平臺(tái)均可采用相同的描述。
(3) 研制周期短, 成本低。
(4) 可以延長(zhǎng)設(shè)計(jì)的生命周期。
(5) 具有電路仿真與驗(yàn)證功能,用戶甚至不必編寫相量測(cè)試即可進(jìn)行源代碼級(jí)調(diào)試。設(shè)計(jì)者能夠跳過電路實(shí)驗(yàn),直接對(duì)各種方案進(jìn)行比較和選擇,使設(shè)計(jì)效率得以提高。
(6) 對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性。
(7) 語(yǔ)言標(biāo)準(zhǔn)、規(guī)范,易于共享和復(fù)用。
目前,VHDL滲透了電子技術(shù)及其相關(guān)的各個(gè)工業(yè)領(lǐng)域,在工業(yè)設(shè)計(jì)中發(fā)揮著日益重要的作用。在世界范圍內(nèi),關(guān)于VHDL在多個(gè)領(lǐng)域尤其在芯片,系統(tǒng)設(shè)計(jì)方面的應(yīng)用研究已經(jīng)取得眾多矚目成果。
而將VHDL與醫(yī)學(xué)相結(jié)合,勢(shì)必成為電子自動(dòng)化設(shè)計(jì)(EDA)一個(gè)全新的研究方向,本文主要研究將EDA通過VHDL應(yīng)用于醫(yī)學(xué),以對(duì)脈搏的測(cè)量為例,以實(shí)現(xiàn)數(shù)字系統(tǒng)對(duì)人體多種生理活動(dòng)及生理反應(yīng)的直觀精確測(cè)量。
1 實(shí)驗(yàn)設(shè)計(jì)
1.1 EDA技術(shù)在醫(yī)學(xué)教學(xué)中脈搏測(cè)量中的應(yīng)用探討
在臨床診斷,護(hù)理學(xué)等中介紹脈搏的測(cè)量時(shí)認(rèn)為脈搏很容易在手腕掌面外側(cè)跳動(dòng)的橈動(dòng)脈上摸到,也可測(cè)量頸部的頸動(dòng)脈或腹股溝的股動(dòng)脈。其測(cè)量方法是病員手臂放于舒適位置,用食指,中指,無(wú)名指的指腹端按壓在橈動(dòng)脈表面,一般病員默數(shù)半分鐘,將所測(cè)的脈率乘以2便是一分鐘的脈數(shù),異常病人測(cè)一分鐘。成年人的脈搏在安靜狀態(tài)下每分鐘是60~80次。如少于60次是心動(dòng)過緩。但訓(xùn)練有素的運(yùn)動(dòng)員,脈搏有時(shí)也在60次以下,這正是心臟健康有力的表現(xiàn)。如超過100次是心動(dòng)過速。體力活動(dòng)或情緒激動(dòng)時(shí),脈搏可暫時(shí)增快,發(fā)燒時(shí)脈搏也增快。一般是體溫每升高1 ℃,脈搏就增加10~20次。此法只能粗略計(jì)算脈搏跳動(dòng),如將VHDL語(yǔ)言應(yīng)用其中,便可以通過EDA實(shí)驗(yàn)箱中的七段數(shù)碼管直觀準(zhǔn)確地看到一分鐘的計(jì)數(shù)結(jié)果,并與之前通過醫(yī)學(xué)教材講授方法測(cè)出結(jié)果相比對(duì),從而判定測(cè)量的正確與否。
1.2 設(shè)計(jì)思路
將脈搏信號(hào)通過脈搏傳感器采集進(jìn)入計(jì)算機(jī),而后作為輸入信號(hào),而此信號(hào)作為脈沖信號(hào),即如時(shí)鐘信號(hào)一般,當(dāng)輸入時(shí)計(jì)數(shù)器開始計(jì)數(shù),如下面設(shè)計(jì)一個(gè)十進(jìn)制計(jì)數(shù)器的VHDL描述便可用來(lái)對(duì)所采集的脈搏信號(hào)計(jì)數(shù)/。
1.3 VHDL設(shè)計(jì)流程
VHDL流程設(shè)計(jì)/如圖1所示。
圖1 VHDL流程設(shè)計(jì)圖
現(xiàn)在,計(jì)算機(jī)輔助工程軟件的供應(yīng)商已把日益通用的硬件描述語(yǔ)言VHDL作為其CAD 或EDA 軟件輸入與輸出的標(biāo)準(zhǔn), 其中ALTEKA公司提供的綜合工具M(jìn)ax+Plus Ⅱ,具有全面的邏輯設(shè)計(jì)能力, 從編輯、綜合、布線到仿真、下載都十分方便。
2 設(shè)計(jì)方案與結(jié)果分析
VHDL 語(yǔ)言設(shè)計(jì)十進(jìn)制計(jì)數(shù)器的源程序/:
library ieee;
use ieee.stdlogic1164.all;
use ieee.stdlogicunsigned.all;
entity jsq is
port(cp,rst:in stdlogic;
cp1:out stdlogic;
q:out stdlogicvector(3 downto 0));
end jsq;
architecture behave of jsq is
begin
process(cp,rst)
variable q1:stdlogicvector(3 downto 0);
begin
if rst=′1′ then q1:=(others=>′0′);
elsif cp′event and cp=′1′then
if q1
else q1:=(others=>′0′);
end if;
q
end if;
if q1="1001" then cp1
else cp1
end if;
end process;
end behave;
在程序輸入完成后, 經(jīng)Max+Plus Ⅱ中的Compiler編譯通過后,可用Stimulator進(jìn)行仿真,查看仿真結(jié)果,如圖2所示。
圖2 經(jīng)Max+Plus Ⅱ編譯,通過Stimulator得到的仿真結(jié)果
也可以加入七段顯示譯碼器的VHDL設(shè)計(jì)來(lái)通過實(shí)驗(yàn)箱的七段數(shù)碼管掃描顯示計(jì)數(shù)結(jié)果/仿真結(jié)果如圖3所示。
圖3 譯碼器的仿真結(jié)果
代碼如下:
library IEEE;
use ieee.stdlogic1164.all;
use ieee.stdlogicunsigned.all;
entity huay is
port( q1:in stdlogicvector(3 downto 0);
light:OUT stdlogicvector(6 downto 0));
end huay;
architecture behave of huay is
begin
process(q1)
begin
case q1 is
when"0000"=>light
when"0001"=>light
when"0010"=>light
when"0011"=>light
when"0100"=>light
when"0101"=>light
when"0111"=>light
when"1000"=>light
when"1001"=>light
when others=>light
end case;
end process;
end behave;
最終實(shí)現(xiàn)的頂層文件原理圖如圖4所示。
圖4 頂層文件原理圖
頂層文件設(shè)計(jì)如圖4所示,通過該文件可以實(shí)現(xiàn)譯碼,下載到EDA實(shí)驗(yàn)箱時(shí),便可于實(shí)驗(yàn)箱的數(shù)碼管上讀出相應(yīng)的脈搏數(shù),如圖5所示。
圖5 通過數(shù)碼管得到的最終仿真圖
VHDL語(yǔ)言與醫(yī)學(xué)內(nèi)容的結(jié)合,除了應(yīng)用于脈搏的測(cè)量,還可應(yīng)用于心跳及呼吸等的測(cè)量,以及受人體對(duì)聲、光刺激后的生理反應(yīng)時(shí)間的測(cè)定/等。電子自動(dòng)化設(shè)計(jì)(EDA)及其相關(guān)技術(shù),在醫(yī)學(xué)領(lǐng)域具有巨大的應(yīng)用前景,有待進(jìn)一步的研究和發(fā)掘。
3 結(jié) 語(yǔ)
VHDL是一種隨著電子技術(shù)的不斷發(fā)展,為滿足電路系統(tǒng)化和高度集成化要求而發(fā)展起來(lái)的一種新型硬件描述語(yǔ)言。VHDL具有廣泛的應(yīng)用范圍,在芯片及電路系統(tǒng)設(shè)計(jì)等方面發(fā)揮著日益重要的作用/。以VHDL為核心的EDA技術(shù)應(yīng)用于醫(yī)學(xué),能直觀準(zhǔn)確的測(cè)量人體的脈搏心跳,呼吸等生理活動(dòng),以及受到外界刺激的生理反應(yīng)等,在醫(yī)學(xué)領(lǐng)域存在廣闊的發(fā)展空間,隨著進(jìn)一步的探索和實(shí)踐,必將對(duì)醫(yī)學(xué)的發(fā)展起到極大的推動(dòng)作用。
參考文獻(xiàn)
[1]陳耀和. VHDL語(yǔ)言設(shè)計(jì)技術(shù)[M]. 北京: 電子工業(yè)出版社, 2004.
[2]汪國(guó)強(qiáng). EDA技術(shù)及應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2006.
[3]潘澤強(qiáng). VHDL語(yǔ)言在數(shù)字電路教學(xué)中的應(yīng)用[J]. 科技資訊, 2008(35): 15.
[4]張順興. 數(shù)字電路與系統(tǒng)設(shè)計(jì)[M]. 南京: 東南大學(xué)出版社, 2004.
[5]余孟嘗. 數(shù)字電子技術(shù)簡(jiǎn)明教程[M]. 3版. 北京: 高等教育出版社, 2006.
[6]朱正偉. EDA技術(shù)及應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2005.
[7]周政新. 電子設(shè)計(jì)自動(dòng)化實(shí)踐與訓(xùn)練[M]. 北京: 中國(guó)民航出版社, 1998.
[8]江曉安. 數(shù)字電子技術(shù)[M]. 西安: 西安電子科技大學(xué)出版社, 2002.
[9]劉玉英. 一種測(cè)量生理反應(yīng)時(shí)間的電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù), 2008, 31(17): 171-173.
vhdl語(yǔ)言篇3
關(guān)鍵詞:EDA;自頂向下;VHDL;交通信號(hào)燈
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2008)15-21050-04
Implementation of Traffic Signal Lights Based on VHDL
LUO Hai-tao
(School of Informatics,Guangdong University of Foreign Studies,Guangzhou 510420,China)
Abstract:EDA integrates the latest technologies of modern Electronics and Computer Science,its design adopts top down methodology,and hardware description language is used to design electronic circuit in EDA;VHDL becomes one of the most popular hardware description language because of its strong ability of modeling and syntheses.Designed traffic signal lights based on VHDL.
Key words:EDA(Electronics Design Automation);Top down;VHDL;Traffic Signal Lights
1 引言
硬件描述語(yǔ)言(HDL,Hardware Description Language)至今約有40余年的歷史,現(xiàn)在已成功地應(yīng)用于ASIC自動(dòng)設(shè)計(jì)的模擬驗(yàn)證和綜合優(yōu)化等方面。其特點(diǎn)是借鑒高級(jí)語(yǔ)言的功能特性對(duì)電路的行為與結(jié)構(gòu)進(jìn)行高度抽象化、規(guī)范化的形式描述,并對(duì)設(shè)計(jì)進(jìn)行不同層次,不同領(lǐng)域的模擬驗(yàn)證與綜合優(yōu)化等處理,使設(shè)計(jì)過程達(dá)到高度自由化。
VHDL語(yǔ)言全稱是“超高速集成電路硬件描述語(yǔ)言”(Very High Speed Integrated Circuit Hardware Description Language),1982年被研發(fā)出來(lái)以。1987年底,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言,并公布了VHDL的IEEE-1076版(87版)。1993年IEEE對(duì)VHDL進(jìn)行修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展了VHDL的內(nèi)容,公布了新的VHDL版本,即IEEE標(biāo)準(zhǔn)的1076-1993版本(93版)。VHDL語(yǔ)言描述能力強(qiáng),覆蓋了邏輯設(shè)計(jì)的諸多領(lǐng)域和層次,大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù),提高設(shè)計(jì)的可靠性。基于VHDL語(yǔ)言的設(shè)計(jì)方法得到了廣泛的應(yīng)用,VHDL語(yǔ)言已成為硬件描述語(yǔ)言的工業(yè)標(biāo)準(zhǔn)。
2 EDA技術(shù)與VHDL語(yǔ)言
EDA 技術(shù)是90年代迅速發(fā)展起來(lái)的,是現(xiàn)代電子設(shè)計(jì)的最新技術(shù)潮流,是綜合現(xiàn)代電子技術(shù)和計(jì)算機(jī)技術(shù)的最新研究成果,是從事電子線路設(shè)計(jì)與分析的一門技術(shù),包括電子線路的設(shè)計(jì)、計(jì)算機(jī)模擬仿真和電路分析、印制電路板的自動(dòng)化設(shè)計(jì)三個(gè)方面的內(nèi)容。
進(jìn)入21世紀(jì)后,EDA技術(shù)得到了更大的發(fā)展,突出表現(xiàn)在以下幾個(gè)方面:(1)使電子設(shè)計(jì)成果以自主知識(shí)產(chǎn)權(quán)的方式得以明確表達(dá)和確認(rèn)成為可能;(2)在仿真和設(shè)計(jì)兩方面支持標(biāo)準(zhǔn)硬件描述語(yǔ)言的功能強(qiáng)大的EDA軟件不斷推出;(3)電子技術(shù)全方位納入EDA領(lǐng)域;(4)EDA使得電子領(lǐng)域各學(xué)科的界限更加模糊,更加互為包容。傳統(tǒng)的電子產(chǎn)品的設(shè)計(jì)必須經(jīng)過設(shè)計(jì)方案的提出、電原理圖設(shè)計(jì)、初步驗(yàn)證、樣機(jī)制作、小批量試制、大批量生產(chǎn)等幾個(gè)過程。對(duì)于電子產(chǎn)品設(shè)計(jì)工程師而言,必須保證理論設(shè)計(jì)、初步驗(yàn)證兩個(gè)過程完全正確,才能按電路原理圖繪制成電路板圖,并進(jìn)行進(jìn)一步的生產(chǎn)。
傳統(tǒng)的電子產(chǎn)品的設(shè)計(jì)通常采用自底向上(Bottom Up)電路設(shè)計(jì)方法,即首先根據(jù)系統(tǒng)對(duì)硬件的要求,寫出詳細(xì)的技術(shù)規(guī)格書,畫出系統(tǒng)的控制流程圖;其次,根據(jù)技術(shù)規(guī)格書和控制流程圖,對(duì)系統(tǒng)功能進(jìn)行細(xì)化,合理劃分功能模塊,畫出系統(tǒng)的功能框圖;然后,對(duì)各個(gè)功能模塊進(jìn)行細(xì)化和電路設(shè)計(jì);最后,將各個(gè)功能模塊的硬件電路連接起來(lái)再進(jìn)行系統(tǒng)地調(diào)試,最后完成整個(gè)系統(tǒng)的硬件設(shè)計(jì)。手工設(shè)計(jì)方法的缺點(diǎn)是:(1)復(fù)雜電路的設(shè)計(jì)、調(diào)試十分困難;(2)如果某一過程存在錯(cuò)誤,查找和修改十分不便;(3)設(shè)計(jì)過程中產(chǎn)生大量文檔,不易管理;(4)對(duì)于集成電路設(shè)計(jì)而言,設(shè)計(jì)實(shí)現(xiàn)過程與具體生產(chǎn)工藝直接相關(guān),因此可移植性差;(5)只有在設(shè)計(jì)出樣機(jī)或生產(chǎn)出芯片后才能進(jìn)行實(shí)測(cè)。
基于EDA技術(shù)的設(shè)計(jì)則采用自頂向下的設(shè)計(jì)方法。
(1)采用可以完全獨(dú)立于目標(biāo)器件芯片物理結(jié)構(gòu)的硬件描述語(yǔ)言,在系統(tǒng)的基本功能或行為級(jí)上對(duì)設(shè)計(jì)的產(chǎn)品進(jìn)行描述和定義,結(jié)合多層次的仿真技術(shù),在確保設(shè)計(jì)的可行性與正確性的前提下,完成功能確認(rèn);
(2)利用EDA工具的邏輯綜合功能,把功能描述轉(zhuǎn)換成某一具體目標(biāo)芯片的網(wǎng)表文件,并將它輸出到該器件廠商的布局布線適配器,進(jìn)行邏輯映射及布局布線;
(3)利用產(chǎn)生的仿真文件進(jìn)行功能和時(shí)序驗(yàn)證,以確保實(shí)際系統(tǒng)的性能。
自頂向下方法的優(yōu)點(diǎn)是:頂層功能描述完全獨(dú)立于目標(biāo)器件的結(jié)構(gòu),在設(shè)計(jì)的最初階段,設(shè)計(jì)人員可不受芯片結(jié)構(gòu)的約束,集中精力對(duì)產(chǎn)品進(jìn)行最適應(yīng)市場(chǎng)需求的設(shè)計(jì),從而避免了傳統(tǒng)設(shè)計(jì)方法中的再設(shè)計(jì)風(fēng)險(xiǎn),縮短了產(chǎn)品的上市周期;設(shè)計(jì)成果的再利用得到保證;由于采用的是結(jié)構(gòu)化開發(fā)方法,因此確認(rèn)主系統(tǒng)基本結(jié)構(gòu)后,可以實(shí)現(xiàn)多人多任務(wù)的并行工作方式,提高系統(tǒng)的設(shè)計(jì)規(guī)模和效率;在選擇目標(biāo)器件的類型、規(guī)模、硬件結(jié)構(gòu)等方面具有更大的自由度。
EDA技術(shù)通常采用硬件描述語(yǔ)言進(jìn)行電子電路設(shè)計(jì),EDA技術(shù)主要特點(diǎn)是:(1)采用硬件描述語(yǔ)言作為設(shè)計(jì)輸入;(2)庫(kù)(Library)的引入;(3)設(shè)計(jì)文檔的管理;(4)強(qiáng)大的系統(tǒng)建模、電路仿真功能;(5)具有自主知識(shí)產(chǎn)權(quán);(6)開發(fā)技術(shù)的標(biāo)準(zhǔn)化、規(guī)范化以及IP核的可利用性;(7)適用于高效率大規(guī)模系統(tǒng)設(shè)計(jì)的自頂向下設(shè)計(jì)方案;(8)全方位地利用計(jì)算機(jī)自動(dòng)設(shè)計(jì)、仿真和測(cè)試技術(shù);(9)對(duì)設(shè)計(jì)者的硬件知識(shí)和硬件經(jīng)驗(yàn)要求低;(10)高速性能好;(11)純硬件系統(tǒng)的高可靠性。
目前常用的用于EDA技術(shù)的硬件描述語(yǔ)言有:ABEL-HDL;Verilog HDL:IEEE 1364-1995,2001;VHDL(Very High Speed Integrated Circuit Hardware Description Language): IEEE 1076-1993。其中VHDL語(yǔ)言以其強(qiáng)大的行為建模、結(jié)構(gòu)建模、寄存器傳輸級(jí)描述以及邏輯綜合功能成為EDA技術(shù)中應(yīng)用最廣泛的硬件描述語(yǔ)言之一。
3 VHDL建模方法
VHDL建模方法一般有行為建模、結(jié)構(gòu)建模、寄存器傳輸級(jí)描述等方式。VHDL具有強(qiáng)大的行為描述能力,成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。行為描述避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)。VHDL豐富的仿真功能和庫(kù)函數(shù)可以在系統(tǒng)的設(shè)計(jì)早期階段查驗(yàn)系統(tǒng)功能的可行性,并對(duì)設(shè)計(jì)進(jìn)行仿真模擬。分解大規(guī)模設(shè)計(jì)和已有設(shè)計(jì)的再利用,這是由VHDL的行為描述能力和程序結(jié)構(gòu)決定的。用VHDL完成設(shè)計(jì)后,可以用多種EDA工具進(jìn)行邏輯綜合和優(yōu)化,VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性。行為建模是一種抽象描述,不是對(duì)具體電路結(jié)構(gòu)的描述,是對(duì)設(shè)計(jì)實(shí)體整體功能的描述,是高層次的概括。對(duì)系統(tǒng)進(jìn)行行為描述目的:在系統(tǒng)設(shè)計(jì)的初始階段通過對(duì)系統(tǒng)行為描述的仿真發(fā)現(xiàn)設(shè)計(jì)中存在的問題;行為描述階段不考慮用具體硬件去實(shí)現(xiàn)實(shí)際的操作和算法,主要檢驗(yàn)系統(tǒng)的結(jié)構(gòu)以及工作過程能否達(dá)到系統(tǒng)設(shè)計(jì)的要求。
行為建模主要使用函數(shù)、過程和進(jìn)程,采用行為建模的方法設(shè)計(jì)的VHDL語(yǔ)言程序一般不能進(jìn)行綜合,必須先使用EDA工具在行為級(jí)上進(jìn)行仿真,確認(rèn)無(wú)誤后再將程序改為結(jié)構(gòu)建?;蛘邤?shù)據(jù)流建模的VHDL語(yǔ)言程序,然后再進(jìn)行綜合。行為建模意義在于對(duì)復(fù)雜的、多層次的系統(tǒng)來(lái)說(shuō),行為建模使設(shè)計(jì)者在早期發(fā)現(xiàn)錯(cuò)誤,并且確定設(shè)計(jì)是否合理。
結(jié)構(gòu)建模是指在層次化設(shè)計(jì)中,高層次(頂層)模塊調(diào)用低層次模塊、基本邏輯門或者基本邏輯單元來(lái)組成復(fù)雜數(shù)字電路或系統(tǒng),例如一位全加器可以由一位半加器和或門構(gòu)成,在進(jìn)行結(jié)構(gòu)建模時(shí),可以先建立半加器和或門模塊,包裝入庫(kù),再調(diào)用這些模塊建立全加器。這里,全加器是頂層模塊,半加器和或門是底層模塊,所以,結(jié)構(gòu)化描述體現(xiàn)了層次化設(shè)計(jì)思想。
寄存器傳輸級(jí)描述RTL(Register Transfer Level),其設(shè)計(jì)實(shí)體的描述按照從信號(hào)到信號(hào)的數(shù)據(jù)流形式,或者叫“數(shù)據(jù)流描述方式”。根據(jù)RTL描述,可以導(dǎo)出系統(tǒng)的邏輯表達(dá)式并進(jìn)行邏輯綜合,是ED設(shè)計(jì)中經(jīng)常采用的描述方法。行為方式描述的系統(tǒng)結(jié)構(gòu)程序抽象度高,很難直接映射到具體的硬件,必須先轉(zhuǎn)換為RTL方式描述的VHDL語(yǔ)言程序。
邏輯綜合是針對(duì)給定的電路功能和實(shí)現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計(jì)算機(jī)進(jìn)行優(yōu)化處理,獲得滿足要求的電路設(shè)計(jì)方案。邏輯綜合的依據(jù)是邏輯設(shè)計(jì)的描述和各種約束條件;邏輯綜合的結(jié)果是一個(gè)硬件電路的實(shí)現(xiàn)方案,該方案必須同時(shí)滿足預(yù)期的功能和約束條件。滿足要求的方案可能有多個(gè),但邏輯綜合器將產(chǎn)生一個(gè)最優(yōu)或接近最優(yōu)的結(jié)果,該結(jié)果和邏輯綜合器的工作性能有關(guān)。
4 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
本系統(tǒng)在Altera公司的Max+ Plus II 10.0 BASELINE軟件下用VHDL語(yǔ)言設(shè)計(jì)實(shí)現(xiàn),操作系統(tǒng)環(huán)境為Windows XP version 5.1.2600。系統(tǒng)采用自頂向下的設(shè)計(jì)方法,首先把系統(tǒng)按功能分解成4個(gè)模塊:controller、display、fenwei以及frequency。分別設(shè)計(jì)4個(gè)模塊,然后再調(diào)用它們構(gòu)成整個(gè)系統(tǒng)。系統(tǒng)頂層采用圖形方法設(shè)計(jì),如圖1所示。
4個(gè)底層模塊則采用VHDL語(yǔ)言設(shè)計(jì),其中Controller的接口代碼為:
Entity Controller Is
Port
(Clock:In Std_Logic;
Reset:In Std_Logic;
Hold:In Std_Logic;
Flash:Out Std_Logic;
NumA,NumB:Out Integer Range 0 To 25;
RedA,GreenA,YellowA:Out Std_Logic;
RedB,GreenB,YellowB:Out Std_Logic
);
Frequency模塊的接口代碼為:
Entity Frequency Is
Port
(Clk10Hz: In Std_Logic;
Clk1Hz:Out Std_Logic
);
End;
Display模塊的接口代碼為:
Entity Display Is
Port( Clock:InStd_Logic;
Flash:In Std_Logic;
Qin:In Std_Logic_Vector(3 Downto 0);
Display:Out Std_Logic_Vector(0 to 6));
End;
Fenwei模塊的接口代碼為:
Entity Fenwei Is
Port
(Clock:In Std_Logic;
Numin:In Integer Range 0 To 25;
NumA,NumB:Out Integer Range 0 To 9
);
End;
編譯后運(yùn)行結(jié)果如圖2所示。
5 結(jié)束語(yǔ)
VHDL是一種功能非常強(qiáng)大的硬件描述語(yǔ)言,主要用于描述數(shù)子系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。VHDL借鑒了高級(jí)語(yǔ)言的特點(diǎn),可以將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體,(可以是一個(gè)元件、一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(可視部分即端口)和內(nèi)部(不可見部分),即設(shè)計(jì)實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,只要其內(nèi)部開發(fā)完成,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。
參考文獻(xiàn):
[1] 胡振華-VHDL與FPGA設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2003.
[2] 求是科技.VHDL應(yīng)用開發(fā)與工程實(shí)踐[M].北京:人民郵電出版社,2005.
[3] 盧毅,賴杰.VHDL與數(shù)字電路設(shè)計(jì)[M].北京:科學(xué)出版社,2001.
vhdl語(yǔ)言篇4
【關(guān)鍵詞】數(shù)字邏輯;VHDL;軟實(shí)驗(yàn)臺(tái);功能仿真
1 存在的問題
目前國(guó)內(nèi)數(shù)字邏輯課程的教學(xué)內(nèi)容多是基于SSI、MSI等器件進(jìn)行分析和設(shè)計(jì),采用的是經(jīng)典的數(shù)字邏輯設(shè)計(jì)方法,即用真值表、卡諾圖、狀態(tài)轉(zhuǎn)換圖、狀態(tài)轉(zhuǎn)換表、狀態(tài)方程、時(shí)序圖、邏輯圖和邏輯函數(shù)表達(dá)式等方法,來(lái)分析和設(shè)計(jì)數(shù)字邏輯系統(tǒng)。顯然,對(duì)于較復(fù)雜的數(shù)字系統(tǒng),因其輸入變量數(shù)、輸出函數(shù)變量數(shù)和狀態(tài)數(shù)的急劇增加,再使用上述這種傳統(tǒng)方法進(jìn)行分析和設(shè)計(jì)難以適用,甚至根本無(wú)法進(jìn)行。數(shù)字邏輯課程的實(shí)驗(yàn)環(huán)節(jié)也是基于標(biāo)準(zhǔn)SSI,MSI芯片的所謂硬實(shí)驗(yàn)臺(tái)實(shí)驗(yàn)室(Hardware-based Laboratory),這種實(shí)現(xiàn)臺(tái)不易做成開放性,實(shí)驗(yàn)準(zhǔn)備,實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)課安排都不靈活,實(shí)驗(yàn)內(nèi)容和效果也受到所供SSI,MSI芯片的限制。如今,數(shù)字化的概念已深入到各個(gè)領(lǐng)域,幾乎絕大多數(shù)系統(tǒng)已不是簡(jiǎn)單幾個(gè)邏輯變量就能完全描述的。然而目前在專門講授數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)理論和方法的數(shù)字邏輯課程中,絕大多數(shù)高校仍然是沿用了幾十年不變的老方法,顯然已遠(yuǎn)遠(yuǎn)落后于時(shí)代的要求,必須加以改革創(chuàng)新。
2 引進(jìn)VHDL語(yǔ)言的方法
VHDL的方法克服了傳統(tǒng)方法的弱點(diǎn),與傳統(tǒng)方法相比有幾處根本優(yōu)點(diǎn),設(shè)計(jì)者可以在VHDL描述模型建立之后馬上用仿真手段來(lái)驗(yàn)證系統(tǒng)功能是否滿足要求。這種方法還可以免去傳統(tǒng)方法的許多繁雜的試湊等耗時(shí)勞動(dòng)(設(shè)計(jì)瓶頸),因而減少設(shè)計(jì)時(shí)間,降低設(shè)計(jì)難度,避免了由于人工試湊設(shè)計(jì)常容易發(fā)生的錯(cuò)誤。利用各種EDA工具,可自動(dòng)的將一個(gè)可綜合的設(shè)計(jì)在給定的具體器件上進(jìn)行門級(jí)實(shí)現(xiàn)。而且,用這種方法系統(tǒng)整體指標(biāo)往往容易實(shí)現(xiàn),而傳統(tǒng)的方法則不然。這種方法其主要設(shè)計(jì)文件是用VHDL語(yǔ)言編寫的源程序,而不是電路原理圖,顯然傳統(tǒng)硬件電路設(shè)計(jì)最后形成的主要文件是電路原理圖,它與設(shè)計(jì)的器件和技術(shù)有關(guān),不易設(shè)計(jì)文檔的復(fù)用。用VHDL語(yǔ)言設(shè)計(jì)系統(tǒng)硬件電路,主要設(shè)計(jì)文件是用VHDL語(yǔ)言編寫的源程序,以此作為歸納文件有很多好處:首先,資料量小,便于保存;其次是可繼承性好,即設(shè)計(jì)其它硬件電路時(shí)可以調(diào)用文件中的某些庫(kù)、進(jìn)程和過程等描述某些局部硬件電路的程序;第三是閱讀方便,很容易在程序中看出某一硬件電路的工作原理和邏輯關(guān)系,而閱讀電路原理圖,推知其工作原理都需要較多的硬件知識(shí)和經(jīng)驗(yàn),而且看起來(lái)也不夠一目了然。VHDL還有一個(gè)重要的特點(diǎn)就是設(shè)計(jì)描述與器件無(wú)關(guān)(without referenec to specific hardware),顯然這是基于SSI、MSI等器件進(jìn)行分析和設(shè)計(jì)無(wú)法做到的,設(shè)計(jì)者能專注其設(shè)計(jì),而且在EDA綜合工具的配合下支持自頂向下的設(shè)計(jì)。
采用VHDL的方法,在實(shí)驗(yàn)環(huán)境上也把基于硬件的實(shí)驗(yàn)室改變成基于軟件的實(shí)驗(yàn)室(Software-based Laboratory)即軟實(shí)驗(yàn)臺(tái),直接在VHDL仿真器中驗(yàn)證實(shí)驗(yàn)結(jié)果的正確性,根本克服了硬實(shí)驗(yàn)臺(tái)的不足,易于實(shí)現(xiàn)實(shí)驗(yàn)的開放性和網(wǎng)絡(luò)教學(xué)模式。
VHDL的方法是順應(yīng)迅速發(fā)展的通訊技術(shù)、電子測(cè)量技術(shù)、自動(dòng)化控制等技術(shù)的需要而發(fā)展起來(lái)的,它使硬件軟件化變?yōu)楝F(xiàn)實(shí),使大規(guī)模和超大規(guī)模集成電路的設(shè)計(jì)向標(biāo)準(zhǔn)化、自動(dòng)化的方向邁進(jìn)了一大步。無(wú)疑,傳統(tǒng)的設(shè)計(jì)方法已經(jīng)遠(yuǎn)遠(yuǎn)落后,國(guó)內(nèi)電子行業(yè)已逐漸將VHDL硬件描述語(yǔ)言應(yīng)用于電子系統(tǒng)設(shè)計(jì)中。為了避免我們的教學(xué)內(nèi)容與電子技術(shù)發(fā)展脫節(jié),增強(qiáng)人才的競(jìng)爭(zhēng)能力,適應(yīng)市場(chǎng)需要,將VHDL硬件描述語(yǔ)言引入數(shù)字邏輯的教學(xué)和實(shí)驗(yàn)中,逐步對(duì)舊的教學(xué)模式和教學(xué)內(nèi)容加以改革,勢(shì)在必行,也是時(shí)代的要求和科技發(fā)展的必然結(jié)果。
3 舉例說(shuō)明采用VHDL方法的風(fēng)格和特點(diǎn)
VHDL語(yǔ)言是目前廣泛流行的硬件描述語(yǔ)言之一,它起源于美國(guó)國(guó)防部超高速集成電路計(jì)劃,計(jì)劃公布后受到業(yè)界的普遍歡迎。1987年12月被IEEE正式批準(zhǔn)為標(biāo)準(zhǔn)的硬件描述語(yǔ)言,并于1993年公布了修改后的IEEE最新標(biāo)準(zhǔn)。VHDL支持結(jié)構(gòu)化的開發(fā)設(shè)計(jì),因此一個(gè)大型的數(shù)字系統(tǒng)可以分成較小的子系統(tǒng),許多人可在不同的子系統(tǒng)中同時(shí)進(jìn)行開發(fā)工作。VHDL是通過元件例化語(yǔ)句來(lái)實(shí)現(xiàn)這一功能的。和其它高級(jí)語(yǔ)言一樣,VHDL是一種強(qiáng)類型語(yǔ)言,這使設(shè)計(jì)中的許多錯(cuò)誤易于發(fā)現(xiàn)。VHDL允許設(shè)計(jì)者在不同的抽象層次里對(duì)系統(tǒng)進(jìn)行行為描述及結(jié)構(gòu)描述。VHDL有三種主要的建模描述風(fēng)格:
算法描述(Algorithmic):即用順序語(yǔ)句來(lái)描述輸入輸出對(duì)應(yīng)關(guān)系的算法,這種描述方式最初往往與實(shí)現(xiàn)硬件無(wú)關(guān)。
數(shù)據(jù)流描述(Dataflow):即用一組并行語(yǔ)句來(lái)描述數(shù)據(jù)在寄存器之間流動(dòng)的建模方式。這種方式與實(shí)際硬件實(shí)際存在某種對(duì)應(yīng)關(guān)系。
結(jié)構(gòu)描述風(fēng)格(Structural):這是一種與硬件結(jié)構(gòu)最近的描述方式,它通過文件的例化語(yǔ)句來(lái)實(shí)現(xiàn)。
下面用一個(gè)實(shí)例來(lái)說(shuō)明采用VHDL語(yǔ)言設(shè)計(jì)一個(gè)四位可控的Johnson計(jì)數(shù)器,從中可以領(lǐng)略一下采用VHDL方法的風(fēng)格和特點(diǎn),此例所反映的設(shè)計(jì)過程也是筆者所指的軟實(shí)驗(yàn)臺(tái)所包含的具體內(nèi)容。設(shè)計(jì)模塊端口信號(hào)有:LEPT,左移控制;RIGHT,右移控制;STOP,停止計(jì)數(shù)控制;CLK,時(shí)鐘輸入端,Q3-Q0,計(jì)數(shù)器輸出端。設(shè)計(jì)采用VHDL輸入方式。該設(shè)計(jì)的VHDL代碼如下:
library IEEE;
use IEEE.std_logic_1164.all;
entity johnson is
port ( LEFT : in STD_LOGIC;
RIGHT : in STD_LOGIC;
STOP : in STD_LOGIC;
CLK : in STD_LOGIC;
Q : buffer STD_LOGIC_VECTOR (3 downto 0));
end johnson;
architecture johnson_arch of Johnson is
signal DIR: STD_LOGIC;
signal RUN: STD_LOGIC;
begin
process (CLK)
begin
if (CLK'event and CLK='1') then
if (RIGHT='0') then
DIR
elsif (LEFT='0') then
DIR
end if;
if (STOP='0') then
RUN
elsif (LEFT='0' or RIGHT='0') then
RUN
end if;
if (RUN='1') then
if (DIR='1') then
Q(3 downto 1)
Q(0)
else
Q(2 downto 0)
Q(3)
end if;
end if;
end if;
end process;
end johnson_arch;
從上面的VHDL的設(shè)計(jì)代碼可見:VHDL的設(shè)計(jì)文檔由三大部分組成,即庫(kù)的聲明,端口說(shuō)明和結(jié)構(gòu)體設(shè)計(jì)描述。其中端口說(shuō)明清晰的反映了所設(shè)計(jì)器件的輸入輸出性質(zhì),在結(jié)構(gòu)體設(shè)計(jì)描述中也清楚的描述了器件所完成的邏輯功能。這是傳統(tǒng)的采用SSI,MSI等標(biāo)準(zhǔn)規(guī)格器件設(shè)計(jì)所沒有的優(yōu)點(diǎn)。
圖1 設(shè)計(jì)實(shí)例功能仿真圖
用VHDL仿真器驗(yàn)證設(shè)計(jì)的正確性。參見圖1:設(shè)計(jì)實(shí)例功能仿真圖。
4 結(jié)論
隨著CMOS技術(shù)的日趨成熟和EDA技術(shù)的產(chǎn)生和逐步完善,給數(shù)字系統(tǒng)的分析和設(shè)計(jì)方法帶來(lái)巨大的變革,EDA業(yè)界出現(xiàn)了將整個(gè)系統(tǒng)集成一個(gè)片IC芯片上的系統(tǒng)芯片(System on a Chip,簡(jiǎn)稱SOC)或稱片上系統(tǒng)的概念。系統(tǒng)芯片SOC與傳統(tǒng)集成電路IC芯片的設(shè)計(jì)思想是不同的,SOC是微電子設(shè)計(jì)領(lǐng)域的一場(chǎng)革命。它和集成電路的關(guān)系與當(dāng)時(shí)集成電路與分離元器件的關(guān)系類似,其對(duì)微電子技術(shù)的推動(dòng)作用不亞于自50年代末快速發(fā)展起來(lái)的集成電路技術(shù)。SOC是從整個(gè)系統(tǒng)的角度出發(fā),把處理機(jī)制、模型算法、芯片結(jié)構(gòu)、各層次電路直至器件的設(shè)計(jì)緊密結(jié)合起來(lái),在單個(gè)(或少數(shù)幾個(gè))芯片上完成整個(gè)系統(tǒng)的功能。它的設(shè)計(jì)必須采用VHDL的方法才能實(shí)現(xiàn)。在數(shù)字邏輯課程教學(xué)和實(shí)驗(yàn)中,在向?qū)W生講授最基本的數(shù)字系統(tǒng)概念和方法時(shí)就引入VHDL的方法,其意義和目的也在于此。筆者并不贊成把數(shù)字邏輯和VHDL程序設(shè)計(jì)作為兩門課程分開來(lái)講授,盡管許多高校和教材都是這樣設(shè)計(jì)的。
【參考文獻(xiàn)】
[1]M.Morris Mano,etc.邏輯與計(jì)算機(jī)設(shè)計(jì)基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2011.
[2]林明權(quán),等,編.VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例[M].北京:電子工業(yè)出版社,2003.
[3]Mark Zwolinski.Digital System Design with VHDL[M].USA:Pearson Education Limited,2000.
vhdl語(yǔ)言篇5
引言
VHDL是一種硬件描述語(yǔ)言,于1983年被IEEE制定為國(guó)際標(biāo)準(zhǔn)IEEE1076。近年來(lái)國(guó)內(nèi)引進(jìn)和出版了不少教材,使其在國(guó)內(nèi)得到迅速推廣。由于VHDL最初目的是為了實(shí)現(xiàn)硬件的建模而被提出的,所以其措施能力超越了數(shù)字邏輯集成電路的范圍。而現(xiàn)有的EDA工具基本上只能支持VHDL的子集,特別是針對(duì)FPGA/CPLD器件進(jìn)行的不同的綜合工具,其綜合子集并非統(tǒng)一,不少初學(xué)者很難掌握。即使是部分有經(jīng)驗(yàn)的設(shè)計(jì)者,對(duì)于通常高級(jí)語(yǔ)言中都會(huì)涉及的循環(huán)語(yǔ)句,在VHDL中往往也不能運(yùn)用自如,甚至無(wú)法表達(dá)此類邏輯,從而限制了VHDL的應(yīng)用水平。例如,VHDL的并行堆排序描述就是一個(gè)比較典型的例子。該實(shí)例十分類似通常數(shù)據(jù)結(jié)構(gòu)的描述,推廣前景誘人;但只能通過仿真,卻不能在目前任何一個(gè)EDA工具進(jìn)行綜合,導(dǎo)致無(wú)實(shí)用價(jià)值。
本文從高級(jí)語(yǔ)言涉及最多的Loop語(yǔ)句出發(fā),討論如何在VHDL中解決這類問題。
1 無(wú)法綜合的Loop動(dòng)態(tài)條件
VHDL中Loop表達(dá)式有三種體現(xiàn)形式:While……Loop、For……Loop和單獨(dú)的Loop語(yǔ)句。它還支持Next、Exit和標(biāo)號(hào),因此,循環(huán)語(yǔ)句的表達(dá)能力大于常規(guī)的C或PASCAL語(yǔ)言。程序1是利用For語(yǔ)句和While語(yǔ)句描述插入算法的部分代碼。
程序1 不可綜合的VHDL循環(huán)語(yǔ)句
……
for I in 2 to Length loop ---Length為一個(gè)變量
Temp:=MyList(I);
J:=I;
While(j>1)and MyList(j-1)<Temp loop
MyList(j):=MyList(j-1);
j:=j-1;
End loop;
MyList(j):=Temp;
End loop;
……
對(duì)于第一個(gè)For語(yǔ)句,EDA工具Synplify綜合時(shí)將會(huì)給出無(wú)邊界的范圍錯(cuò)誤提示。
@E:"H:.vhd"|for loops with unbound ranges should contain w wait statement
即使部分優(yōu)秀的綜合工具,例如ORCAD Express、Mentor Grpahs QuickHDL等能夠綜合第一個(gè)For語(yǔ)句,也無(wú)法支持第二個(gè)While條例表達(dá)式。ORCAD Express將給出表達(dá)式不可靜態(tài)計(jì)算的錯(cuò)誤提示。
..vhd(45):Error,expression does not evaluate to a constant.
由于程序1在C程序員看來(lái)是沒有問題的,因此,初學(xué)者往往不能解決好此類問題,從而使學(xué)習(xí)陷入困境,無(wú)法充分利用VHDL來(lái)表述邏輯。
2 直接代換法
對(duì)于第一類無(wú)邊界的范圍錯(cuò)誤問題,可以用循環(huán)的綜合機(jī)制轉(zhuǎn)化為相應(yīng)的語(yǔ)句。例如下面代碼:
for I in 0 to 1 loop
Out_Bus(i)<=In_Bus(i);
End loop;
其對(duì)應(yīng)綜合后的電路見圖1。
相應(yīng)的,也可以用下列語(yǔ)句直接代入代換:
Out_Bus(0)<=In_Bus(0);
Out_Bus(1)<=In_Bus(1);
程序1可以采用下列VHDL代碼表示:
K:=2;
Temp:=MyList(2);
If(MyList(1)<Temp then
MyList(2):=MyList(1);
J:=1;
End if;
MyList(J):=Temp;
J:=3;
Temp:=MyList(3);
If(MyList(2)<Temp then
MyList(3):=MyList(2);
J:=2;
End if;
If(MyList(1)<Temp then
MyList(2):=MyList(1);
J:=1;
End if;
MyList(J):=Temp;
……
然而,這種使用方法要求設(shè)計(jì)者清楚循環(huán)條件一定會(huì)執(zhí)行的次數(shù),否則將無(wú)法實(shí)施。當(dāng)循環(huán)次數(shù)比較大時(shí),代碼編寫工作量將十分龐大,因此可以采用第二種方法——邊界擴(kuò)充法。
3 邊界擴(kuò)充法
邊界擴(kuò)充法是指在邊界未定時(shí),可以將邊界定為最大可能的范圍,即用靜態(tài)表達(dá)來(lái)替代。例如程序1的代碼可以改寫為:
constant MAX:integer=100; --MAX必須大于MyLen所有可能的取值
……
Out_loop:for I in 2 to MAX loop
Exit out_loop when I>MyLen; --MyLen為變量
Temp:=MyList(I);
countj:=I;
inter_loop:for j in I downto 2 loop
countj:=j;
exit inter_loop when MyList(j-1)<Temp; --退出循環(huán)
MyList(j):=MyList(j-1);
End loop;
MyList(countj):=Temp;
End loop;
盡管這種方法可以處理未知邊界和未定表達(dá)式的情況,但十分消耗空間,特別是當(dāng)MyLen相對(duì)MAX比較小的時(shí)候,代價(jià)非常大。此時(shí),可以利用時(shí)間換空間的方法進(jìn)行轉(zhuǎn)換。
圖1 For語(yǔ)句的綜合示例
4 計(jì)數(shù)器法
計(jì)數(shù)器法是指引入時(shí)鐘和計(jì)數(shù)器,用計(jì)數(shù)器對(duì)邊界條件進(jìn)行控制,也可以將動(dòng)態(tài)表達(dá)式直接代入轉(zhuǎn)化相應(yīng)的靜態(tài)表達(dá)式。例如,上述代碼的For條件可以用下列代碼替換:
if(Reset='1')then
I:=2;
Elsif clk='1'and clk'event then
Temp:=MyList(I);
J:=2;
While(j>1)and MyList(j-1)<Temp loop
MyList(j):=MyList(j-1);
j:=j-1;
End loop;
MyList(j):=Temp;
I:=(I+1);
If(I=MyLen+1)then I:=2;end if;
End if;
相比原來(lái)的代碼,引入了1個(gè)時(shí)鐘和1個(gè)復(fù)位。但綜合開銷最大的循環(huán)語(yǔ)句卻被取代了,因此,綜合產(chǎn)生門的數(shù)目將大幅度下降,但處理時(shí)間將相應(yīng)延長(zhǎng)到原來(lái)循環(huán)條件范圍。
本刊網(wǎng)絡(luò)補(bǔ)充版(dpj.com.cn)中發(fā)表了四個(gè)源代碼,分別為不可綜合例子、直接代換法、邊界擴(kuò)充法和計(jì)算器法,內(nèi)部都有相應(yīng)注釋。其中計(jì)數(shù)器法改進(jìn)為雙計(jì)數(shù)器方法。
結(jié)語(yǔ)
vhdl語(yǔ)言篇6
關(guān)鍵詞:數(shù)字調(diào)制器;DDS;DSP Builder;VHDL;FPGA
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):16727800(2013)007010402
0 引言
在數(shù)字基帶傳輸系統(tǒng)中,為了使數(shù)字基帶信號(hào)能夠在信道中傳輸,要求信道應(yīng)具有低通形式的傳輸特性。但在實(shí)際信道中,大多數(shù)信道并不能傳輸基帶信號(hào),為了使基帶信號(hào)匹配信道,必須用數(shù)字基帶信號(hào)對(duì)載波進(jìn)行調(diào)制,產(chǎn)生各種已調(diào)數(shù)字信號(hào)?;镜娜N數(shù)字調(diào)制方式是:振幅鍵控(ASK)、移頻鍵控(FSK)和移相鍵控(PSK)。
本文采用兩種方法來(lái)實(shí)現(xiàn)數(shù)字調(diào)制器,一種是用Altera公司推出的FPGA開發(fā)工具DSP Builder,設(shè)計(jì)了基于DDS(直接數(shù)字頻率合成)技術(shù)的多種數(shù)字調(diào)制器,然后使用Signal Compiler把模型設(shè)計(jì)文件(.mdl)轉(zhuǎn)換成相應(yīng)的硬件描述語(yǔ)言VHDL的設(shè)計(jì)文件(.vhd),以及用于控制綜合和編譯的TCL腳本[1];另一種是直接用VHDL語(yǔ)言編程來(lái)實(shí)現(xiàn)。接著就可以用Quartus II來(lái)完成綜合、仿真、適配、下載到器件。
1 DSP Builder方法實(shí)現(xiàn)數(shù)字調(diào)制器
1.1 DDS原理
直接數(shù)字頻率合成技術(shù)(Direct Digital Synthesis, DDS) 是一種從相位出發(fā)直接合成所需要的波形的全數(shù)字頻率合成技術(shù),該技術(shù)特點(diǎn)是:頻率分辨率高、頻率變化速度快、相位可連續(xù)性變化等[2],被廣泛應(yīng)用在數(shù)字通信系統(tǒng)中,是信號(hào)生成的最佳選擇。一個(gè)基本的DDS結(jié)構(gòu)如圖1所示,主要由相位累加器、相位調(diào)制器、正弦ROM查找表、基準(zhǔn)時(shí)鐘源和D/A轉(zhuǎn)換器構(gòu)成,前三部分是DDS結(jié)構(gòu)中的數(shù)字部分,具有數(shù)控頻率合成的功能。相位累加器是DDS系統(tǒng)的核心,它由一個(gè)累加器和一個(gè)相位寄存器組成[3],用來(lái)完成相位的累加運(yùn)算,然后輸出給相位調(diào)制器,實(shí)現(xiàn)對(duì)相位的調(diào)制,其輸出結(jié)果作為正弦ROM查找表的地址,正弦ROM查找表完成查表轉(zhuǎn)換,也可以理解成相位到幅度的轉(zhuǎn)換,輸出送往D/A轉(zhuǎn)化成模擬信號(hào)。
3 結(jié)語(yǔ)
采用APEX20KE系列器件對(duì)以上兩種方法實(shí)現(xiàn)2FSK調(diào)制器進(jìn)行編譯仿真,DSP Builder建模的方法占用的LE單元296個(gè),約為4%,引腳為 97, VHDL編程方法占用的LE單元為8個(gè),不到1%,引腳為 4。通過比較得出結(jié)論:DSP Builder方法比較簡(jiǎn)單,不需要復(fù)雜的編程,但占用的資源比較多,VHDL方法編程比較難,但實(shí)現(xiàn)簡(jiǎn)單功能時(shí)占用資源少。
參考文獻(xiàn):
[1] 楊西西,徐建城,任自釗.基于DSP Builder的數(shù)字調(diào)制器[J].科學(xué)技術(shù)與工程,2011(2).
[2] 雷國(guó)偉,林興元,舒強(qiáng),等.基于DSP Builder的通用調(diào)制信號(hào)發(fā)生器設(shè)計(jì)[J].電視技術(shù),2009(2).
[3] 李康順,呂小巧,張文,等.基于改進(jìn)DDS技術(shù)的FPGA數(shù)字調(diào)制器研究[J].壓電與聲光,2009(6).
vhdl語(yǔ)言篇7
摘要:從數(shù)字系統(tǒng)設(shè)計(jì)的性質(zhì)出發(fā),結(jié)合目前迅速發(fā)展的芯片系統(tǒng),比較、研究各種硬件描述語(yǔ)言;詳細(xì)闡述各種語(yǔ)言的發(fā)展歷史、體系結(jié)構(gòu)和設(shè)計(jì)方法;探討未來(lái)硬件描述語(yǔ)言的發(fā)展趨勢(shì),同時(shí)針對(duì)國(guó)內(nèi)EDA基礎(chǔ)薄弱的現(xiàn)狀,在硬件描述語(yǔ)言方面作了一些有益的思考。
現(xiàn)在,隨著系統(tǒng)級(jí)FPGA以及系統(tǒng)芯片的出現(xiàn)。軟硬件協(xié)調(diào)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)變得越來(lái)越重要。傳統(tǒng)意義上的硬件設(shè)計(jì)越來(lái)越傾向于與系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì)結(jié)合。硬件描述語(yǔ)言為適應(yīng)新的情況,迅速發(fā)展,出現(xiàn)了很多新的硬件描述語(yǔ)言,像Superlog、SystemC、cynlibc++等等。究交選擇哪種語(yǔ)言進(jìn)行設(shè)計(jì),整個(gè)業(yè)界正在進(jìn)行激烈的討論。因此,完全有必要在這方面作一些比較研究,為EDA設(shè)計(jì)做一些有意義的工作,也為發(fā)展我們未來(lái)的芯片設(shè)計(jì)技術(shù)打好基礎(chǔ)。
一、目前HDL發(fā)展?fàn)顩r
目前,硬件描述語(yǔ)言可謂是百花齊放,有VHDL、Superlog、Verilog、SystemC、CynlibC++、CLevel等等。雖然各種語(yǔ)言各有所長(zhǎng),但業(yè)界對(duì)到底使用哪一種語(yǔ)言進(jìn)行設(shè)計(jì),卻莫衷一是,難有定論。
而比較一致的意見是,HDL和C/C++語(yǔ)言在設(shè)計(jì)流程中實(shí)現(xiàn)級(jí)和系統(tǒng)級(jí)都具有各自的用武之地。問題出現(xiàn)在系統(tǒng)級(jí)和實(shí)現(xiàn)級(jí)相連接的地方:什么時(shí)候?qū)⑹褂弥械囊环N語(yǔ)言停下來(lái),而開始使用另外一種語(yǔ)言?或者干脆就直接使用一種語(yǔ)言?現(xiàn)在看來(lái)得出結(jié)論仍為時(shí)過早。
在2001年舉行的國(guó)際HDL會(huì)議上,與會(huì)者就使用何種設(shè)計(jì)語(yǔ)言展開了生動(dòng)、激烈的辯論。各方人士各持己見:為Verilog辯護(hù)者認(rèn)為,開發(fā)一種新的設(shè)計(jì)語(yǔ)言是一種浪費(fèi);為SystemC辯護(hù)者認(rèn)為,系統(tǒng)級(jí)芯片SoC快速增長(zhǎng)的復(fù)雜性需要新的設(shè)計(jì)方法;C語(yǔ)言的贊揚(yáng)者認(rèn)為,Verilog是硬件設(shè)計(jì)的匯編語(yǔ)言,而編程的標(biāo)準(zhǔn)很快就會(huì)是高級(jí)語(yǔ)言,Cynlibc++是最佳的選擇,它速度快、代碼精簡(jiǎn);Supedog的捍衛(wèi)者認(rèn)為,Superlog是Verilog的擴(kuò)展,可以在整個(gè)設(shè)計(jì)流程中僅提供一種語(yǔ)言和一個(gè)仿真器,與現(xiàn)有的方法兼容,是一種進(jìn)化,而不是一場(chǎng)革命。
當(dāng)然,以上所有的討論都沒有提及模擬設(shè)計(jì)。如果想設(shè)計(jì)帶有模擬電路的芯片,硬件描述語(yǔ)言必須有模擬擴(kuò)展部分,像VerilogHDL-A,既要求能夠描述門級(jí)開關(guān)級(jí),又要求具有描述物理特性的能力。
二、幾種代表性的HDL語(yǔ)言
2.1VHDL
早在1980年,因?yàn)槊绹?guó)軍事工業(yè)需要描述電子系統(tǒng)的方法,美國(guó)國(guó)防部開始進(jìn)行VHDL的開發(fā)。1987年。由IEEE(In,stituteofElectricalandElectro-nicsEngineers)將VHDL制定為標(biāo)準(zhǔn)。參考手冊(cè)為IEEEVHDL語(yǔ)言參考手冊(cè)標(biāo)準(zhǔn)草案1076/8版,于1987年批準(zhǔn),稱為IEEE1076-1987。應(yīng)當(dāng)注意,起初VHDL只是作為系統(tǒng)規(guī)范的一個(gè)標(biāo)滯,而不足為設(shè)計(jì)而制定的。第二個(gè)版本是在1993年制定的,稱為VHDL-93,增加了一些新的命令和屬性。
雖然有“VHDL是一個(gè)4億美元的錯(cuò)誤”這樣的說(shuō)法。但VHDL畢竟是1995年以前唯一制訂為標(biāo)準(zhǔn)的硬件描述語(yǔ)言,這是它不爭(zhēng)的事實(shí)和優(yōu)勢(shì);但同時(shí)它確實(shí)比較麻煩,而且其綜合庫(kù)至今也沒有標(biāo)準(zhǔn)化,不具有晶體管開關(guān)級(jí)的描述能力和模擬設(shè)計(jì)的描述能力。目前的看法是,對(duì)于特大型的系統(tǒng)級(jí)數(shù)字電路設(shè)計(jì),VHDL是較為合適的。
實(shí)質(zhì)上,在底層的VHDL設(shè)計(jì)環(huán)境是由VerilogHDL描述的器件庫(kù)支持的,因此,它們之間的互操作性十分重要。目前,Verilog和VDHL的兩個(gè)國(guó)際組織OVI、Ⅵ正在籌劃這一工作,準(zhǔn)備成立專門的工作組來(lái)協(xié)調(diào)VHDL和VerilogHDL語(yǔ)言的互操作性。OVI也支持不需要翻譯,由VHDL到Verilog的自由表達(dá)。
2.2VerilogHDL
VenlogHDL是在1983年,由GDA(GateWayDesignAu-tomation)公司的PhilMoorby首創(chuàng)的。PhilMoorby后來(lái)成為Verilog-XL的主要設(shè)計(jì)者和Cadence公司的第一合伙人。在1984“1985年,PhilMoorby設(shè)計(jì)出了第一個(gè)名為Venlog-XL的仿真器;1986年,他對(duì)VerilogHDL的發(fā)展義作出了另一個(gè)巨大的貢獻(xiàn):提出了用于快速門級(jí)仿真的XL算法。
隨著Verilog-XL算法的成功,VerilogHDL語(yǔ)言得到迅速發(fā)展。1989年,Cadence公司收購(gòu)了GDA公司,VerilogHDL語(yǔ)言成為Cadence公司的私有財(cái)產(chǎn)。1990年,Cadence公司決定公開VerilogHDL語(yǔ)言,于是成立了OVI(OpenVerilogInternaUonal)組織,負(fù)責(zé)促進(jìn)VerilogHDL語(yǔ)言的發(fā)展?;赩erilogHDL的優(yōu)越性,IEEE于1995年制定了VerilogHDL的IEEE標(biāo)準(zhǔn),即VerilogHDL1364-1995;2001年了VerilogHDL1364-2001標(biāo)準(zhǔn)。在這個(gè)標(biāo)準(zhǔn)中,加入了VerilogHDL-A標(biāo)準(zhǔn),使Verilog有了模擬設(shè)計(jì)描述的能力。
2.3Superlog
開發(fā)一種新的硬件設(shè)計(jì)語(yǔ)言,總是有些冒險(xiǎn),而且未必能夠利用原來(lái)對(duì)硬件開發(fā)的經(jīng)驗(yàn)。能不能在原有硬件描述語(yǔ)言的基礎(chǔ)上,結(jié)合高級(jí)語(yǔ)言c、c++甚至Java等語(yǔ)言的特點(diǎn),進(jìn)行擴(kuò)展,達(dá)到一種新的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言標(biāo)準(zhǔn)呢?
Superlog就是在這樣的背景下研制開發(fā)的系統(tǒng)級(jí)硬件描述語(yǔ)言。Verilog語(yǔ)言的首創(chuàng)者PhilMoorby和PeterFlake等硬什描述語(yǔ)言專家,在一家叫Co-DesignAutomation的EDA公司進(jìn)行合作,開始對(duì)Verilog進(jìn)行擴(kuò)展研究。1999年,Co-Design公司了SUPERLOGTM系統(tǒng)設(shè)計(jì)語(yǔ)言,同時(shí)了兩個(gè)開發(fā)工具:SYSTEMSIMTM和SYSTEMEXTM。一個(gè)用于系統(tǒng)級(jí)開發(fā),一個(gè)用于高級(jí)驗(yàn)證。2001年,Co-Design公司向電子產(chǎn)業(yè)標(biāo)準(zhǔn)化組織Accellera了SUPERLOG擴(kuò)展綜合子集ESS,這樣它就可以在今天Verilog語(yǔ)言的RTL級(jí)綜合子集的基礎(chǔ)上,提供更多級(jí)別的硬件綜合抽象級(jí),為各種系統(tǒng)級(jí)的EDA軟件工具所利用。
至今為止,已超過15家芯片設(shè)計(jì)公司用Superlog來(lái)進(jìn)行芯片設(shè)計(jì)和硬件開發(fā)。Superlog是一種具有良好前景的系統(tǒng)級(jí)硬件描述語(yǔ)言。但是不久前,由于整個(gè)IT產(chǎn)業(yè)的滑坡,EDA公司進(jìn)行大的整合,Co-Design公司被Synopsys公司兼并,形勢(shì)又變得撲朔迷離。
2.4SystemC
隨著半導(dǎo)體技術(shù)的迅猛發(fā)展,SoC已經(jīng)成為當(dāng)今集成電路設(shè)計(jì)的發(fā)展方向。在系統(tǒng)芯片的各個(gè)設(shè)計(jì)中,像系統(tǒng)定義、軟硬件劃分、設(shè)計(jì)實(shí)現(xiàn)等,集成電路設(shè)計(jì)界一直在考慮如何滿足SoC的設(shè)計(jì)要求,一直在尋找一種能同時(shí)實(shí)現(xiàn)較高層次的軟件和硬件描述的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言。
systemC正是在這種情況下,由Synopsys公司和CoWare公司積極響應(yīng)目前各方對(duì)系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言的需求而合作開發(fā)的。1999年9月27日,40多家世界著名的EDA公司、lP公司、半導(dǎo)體公司和嵌入式軟件公司宣布成立“開放式SystemC聯(lián)盟”。著名公司Cadence也于2001年加入了systemC聯(lián)盟。SystemC從1999年9月聯(lián)盟建立初期的0.9版本開始更新,從1.0版到1.1版,一直到2001年10月推出了最新的2,0版。
三、各種HDL語(yǔ)言的體系結(jié)構(gòu)和設(shè)計(jì)方法
3.1SystemC
實(shí)際使用中,systemc由一組描述類庫(kù)和一個(gè)包含仿真核的庫(kù)組成。在用戶的描述程序中,必須包括相應(yīng)的類庫(kù),可以通過通常的ANSIc++編譯器編譯該程序。SystemC提供了軟件、硬件和系統(tǒng)模塊。用戶可以在不同的層次上自由選擇。建立自己的系統(tǒng)模型,進(jìn)行仿真、優(yōu)化、驗(yàn)證、綜合等等。
3.2Supeflog
Superlog集合了Verilog的簡(jiǎn)潔、c語(yǔ)言的強(qiáng)大、功能驗(yàn)證和系統(tǒng)級(jí)結(jié)構(gòu)設(shè)計(jì)等特征,是一種高速的硬件描述語(yǔ)言。
①Verilog95和Verilog2K。Superlog是VerilogHDL的超集,支持最新的Verilog2K的硬件模型。
②c和c++語(yǔ)言。Superlog提供c語(yǔ)言的結(jié)構(gòu)、類型、指針,同時(shí)具有C++面對(duì)對(duì)象的特性。
③Superlog擴(kuò)展綜合子集ESS。ESS提供一種新的硬件描述的綜合抽象級(jí)。
④強(qiáng)大的驗(yàn)證功能。自動(dòng)測(cè)試基準(zhǔn),如隨機(jī)數(shù)據(jù)產(chǎn)生、功能覆蓋、各種專有檢查等。
Superlog的系統(tǒng)級(jí)硬件開發(fā)工具主要有Co-DesignAu-mmation公司的SYSTEMSIMTM和SYSTEMEXTM,同時(shí)可以結(jié)合具它的EDA工具進(jìn)行開發(fā)。
3.3Verilog和VHDL
這兩種語(yǔ)言是傳統(tǒng)硬件描述語(yǔ)言,有很多的書籍和資料叫以查閱參考,這里不多介紹。
四、目前可取可行的策略和方式
按傳統(tǒng)方法,我們將硬件抽象級(jí)的模型類型分為以下五種:
(1)系統(tǒng)級(jí)(system)-用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型;
(2)算法級(jí)(aIgorithm)-用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型;
(3)RTL級(jí)(RegisterTransferLevel)-描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理、控制這些數(shù)據(jù)流動(dòng)的模型。
(4)門級(jí)(gate-level)-描述邏輯門以及邏輯門之間的連接模型;
(5)開關(guān)級(jí)(swish-level)-描述器件中三極管和存儲(chǔ)節(jié)點(diǎn)以及它們之間連接的模型。
根據(jù)目前芯片設(shè)計(jì)的發(fā)展趨勢(shì)。驗(yàn)證級(jí)和綜合抽象級(jí)也有可能成為一種標(biāo)準(zhǔn)級(jí)別。因?yàn)樗鼈冞m合于IP核復(fù)用和系統(tǒng)級(jí)仿真綜合優(yōu)化的需要,而軟件(嵌入式、固件式)也越來(lái)越成為一個(gè)和系統(tǒng)密切相關(guān)的抽象級(jí)別。
目前,對(duì)于一個(gè)系統(tǒng)芯片設(shè)計(jì)項(xiàng)目,可以采用的方案包括以下幾種:
①最傳統(tǒng)的辦法是,在系統(tǒng)級(jí)采用VHDL,在軟件級(jí)采用c語(yǔ)言,在實(shí)現(xiàn)級(jí)采用Verilog。目前,VHDL與Verilog的互操作性已經(jīng)逐步走向標(biāo)準(zhǔn)化,但軟件與硬件的協(xié)凋設(shè)計(jì)還是一個(gè)很具挑戰(zhàn)性的工作。因?yàn)檐浖絹?lái)越成為SOC設(shè)計(jì)的關(guān)鍵。該力案的特點(diǎn)是:風(fēng)險(xiǎn)小,集成難度大,與原有方法完全兼容,有現(xiàn)成的開發(fā)工具:但工具集成由開發(fā)者自行負(fù)責(zé)完成。
②系統(tǒng)級(jí)及軟件級(jí)采用Superlog,硬件級(jí)和實(shí)現(xiàn)級(jí)均采用VerilogHDL描述,這樣和原有的硬件設(shè)計(jì)可以兼容。只要重新采購(gòu)兩個(gè)Superlog開發(fā)工具SYSTEMSIMTM和SYSTEMEXTM即可。該方案特點(diǎn)是風(fēng)險(xiǎn)較小,易于集成,與原硬件設(shè)計(jì)兼容性好。有集成開發(fā)環(huán)境。
③系統(tǒng)級(jí)和軟件級(jí)采用SystemC,硬件級(jí)采用SystemC與常規(guī)的VerilogHDL互相轉(zhuǎn)換,與原來(lái)的軟件編譯環(huán)境完全兼容。開發(fā)者只需要一組描述類庫(kù)和一個(gè)包含仿真核的庫(kù),就可以在通常的ANSIc++編譯器環(huán)境下開發(fā);但硬件描述與原有方法完全不兼容。該方案特點(diǎn)是風(fēng)險(xiǎn)較大,與原軟件開發(fā)兼容性好,硬件開發(fā)有風(fēng)險(xiǎn)。
五、未來(lái)發(fā)展和技術(shù)方向
微電子設(shè)計(jì)工業(yè)的設(shè)計(jì)線寬已經(jīng)從0.251um向0.18um變遷,而且正在向0.13um和90nm的目標(biāo)努力邁進(jìn)。到0.13um這個(gè)目標(biāo)后,90%的信號(hào)延遲將由線路互連所產(chǎn)生:為了設(shè)計(jì)工作頻率近2GHz的高性能電路,就必須解決感應(yīng)、電遷移和襯底噪聲問題(同時(shí)還有設(shè)計(jì)復(fù)雜度問題)。
未來(lái)幾年的設(shè)計(jì)中所面臨的挑戰(zhàn)有哪些?標(biāo)準(zhǔn)組織怎樣去面對(duì)?當(dāng)設(shè)計(jì)線寬降到0.13um,甚至更小尉,將會(huì)出現(xiàn)四個(gè)主要的趨勢(shì):設(shè)計(jì)再利用;設(shè)計(jì)驗(yàn)證(包括硬件和軟什);互連問題將決定剝時(shí)間、電源及噪聲要求;系統(tǒng)級(jí)芯片設(shè)計(jì)要求。
滿足來(lái)來(lái)設(shè)計(jì)者需要的設(shè)計(jì)環(huán)境將是多家供應(yīng)商提供解決方案的模式,因?yàn)樯婕暗膯栴}面太廣且太復(fù)雜,沒有哪個(gè)公司或?qū)嶓w可以獨(dú)立解決。實(shí)際上,人們完全有理由認(rèn)為,對(duì)下一代設(shè)計(jì)問題解決方案的貢獻(xiàn),基礎(chǔ)研究活動(dòng)與獨(dú)立產(chǎn)業(yè)的作用將同等重要。
以后EDA界將在以下三個(gè)方面開展工作。
①互用性標(biāo)準(zhǔn)。所有解決方案的基礎(chǔ),是設(shè)計(jì)工具開發(fā)過程的組件一互用性標(biāo)準(zhǔn)。我們知道。EDA工業(yè)采用的是工業(yè)上所需要的標(biāo)準(zhǔn)。而不管標(biāo)準(zhǔn)是誰(shuí)制定的。但是,當(dāng)今市場(chǎng)的迅速發(fā)展正在將優(yōu)勢(shì)轉(zhuǎn)向那些提供標(biāo)準(zhǔn)時(shí)能做到快速適應(yīng)和技術(shù)領(lǐng)先的組織。處于領(lǐng)先的公司正在有目的地向這方面投資,那些沒有參加開發(fā)這些標(biāo)準(zhǔn)的公司則必須獨(dú)自承擔(dān)風(fēng)險(xiǎn)。
②擴(kuò)展其高級(jí)庫(kù)格式(ALF)標(biāo)準(zhǔn),使其包含物理領(lǐng)域的信息,是EDA開發(fā)商可以致力于解決互連問題的算法,從而使電路設(shè)計(jì)者在解決設(shè)計(jì)收尾工作時(shí),不再受到這個(gè)問題的困擾。
vhdl語(yǔ)言篇8
【關(guān)鍵詞】FPGA;VHDL;可變模計(jì)數(shù)器
1.引言
EDA是將數(shù)字系統(tǒng)以某一種特定的表達(dá)方式輸入計(jì)算機(jī)開發(fā)平臺(tái)進(jìn)行處理,經(jīng)由綜合,仿真,下載到目標(biāo)芯片,最終實(shí)現(xiàn)設(shè)計(jì)的智能化設(shè)計(jì)技術(shù)。其中輸入文件的種類眾多,有原理圖輸入法、硬件描述語(yǔ)言輸入法、狀態(tài)圖輸入法、波形輸入法等。
硬件描述語(yǔ)言(HDL)是EDA技術(shù)的重要組成部分,是設(shè)計(jì)數(shù)字系統(tǒng)的重要表達(dá)手段,和原理圖輸入法,波形輸入法相比,具有靈活度高,易于修改、升級(jí),方便調(diào)用,庫(kù)資源豐富等優(yōu)點(diǎn)。常見的HDL主要有VHDL、Verilog HDL、ABEL、AHDL等,其中標(biāo)準(zhǔn)化語(yǔ)言VHDL、Verilog使用最廣泛,可以被幾乎所有的EDA工具支持。
可變模計(jì)數(shù)器是數(shù)字系統(tǒng)中廣泛應(yīng)用的一種電路模塊,本文討論了一種基于VHDL語(yǔ)言實(shí)現(xiàn)的可變模計(jì)數(shù)器的EDA設(shè)計(jì)方案,采用FPGA芯片作為設(shè)計(jì)載體,F(xiàn)PGA具有在線可重構(gòu)的優(yōu)點(diǎn),如需對(duì)計(jì)數(shù)器的技術(shù)指標(biāo)進(jìn)行修改,只需修改源程序中的相應(yīng)參數(shù),重新進(jìn)行編譯、仿真、配置即可,使得系統(tǒng)本身靈活性好,便于升級(jí)和維護(hù)。
2.可變模計(jì)數(shù)器的功能指標(biāo)
本文設(shè)計(jì)的計(jì)數(shù)器為5位輸出可變模計(jì)數(shù)器,采用兩位控制信號(hào)選擇計(jì)數(shù)的模值,因此可進(jìn)行四種模值的切換。計(jì)數(shù)器在工作時(shí),可以通過控制信號(hào)m[1:0]的值選擇相應(yīng)的模值m,計(jì)數(shù)時(shí),在每個(gè)時(shí)鐘的上升沿進(jìn)行加法計(jì)數(shù),從0計(jì)到m-1,然后自動(dòng)歸零循環(huán)計(jì)數(shù)。在本設(shè)計(jì)中,輸出端口為5位,可以實(shí)現(xiàn)模小于等于32的計(jì)數(shù)應(yīng)用。如果需要增可選擇模值的數(shù)量,只需要增加選擇控制信號(hào)位數(shù)即可。隨著模值的增大,還可以相應(yīng)增加輸出端口信號(hào)的位數(shù)來(lái)對(duì)應(yīng)。
3.可變模計(jì)數(shù)器的實(shí)現(xiàn)方案
在本設(shè)計(jì)中,采用VHDL語(yǔ)言進(jìn)行源程序的設(shè)計(jì),源程序由實(shí)體和結(jié)構(gòu)體兩個(gè)部分組成,在實(shí)體中定義了系統(tǒng)的輸入輸出端口,在結(jié)構(gòu)體中行描述了計(jì)數(shù)器的邏輯功能。令兩位控制信號(hào)分別為m1、m0,計(jì)數(shù)脈沖為clk輸入時(shí)鐘信號(hào),計(jì)數(shù)值輸出為5位二進(jìn)制信號(hào)y。假設(shè)當(dāng)控制信號(hào)m[1:0]=0時(shí),進(jìn)行模19計(jì)數(shù);m[1:0]=1時(shí),進(jìn)行模4計(jì)數(shù);m[1:0]=2時(shí),進(jìn)行模10計(jì)數(shù);m[1:0]=3時(shí),進(jìn)行模6計(jì)數(shù).該程序通過信號(hào)傳遞參數(shù),如果想修改計(jì)數(shù)器的功能指標(biāo),只需要修改源程序中相應(yīng)的端口參數(shù)和信號(hào)參數(shù)即可,修改設(shè)計(jì)非常方便、靈活。采用VHDL描述的源程序如下:
以上源程序在集成開發(fā)環(huán)境下通過綜合和適配,將行為和功能的高層次表達(dá)轉(zhuǎn)換為門電路的低層次表達(dá),最終在硬件上實(shí)現(xiàn)系統(tǒng)功能。
4.可變模計(jì)數(shù)器的編譯與仿真結(jié)果
將編寫好的源程序與實(shí)體名variable_m同名保存在工程項(xiàng)目路徑下,文件名后綴為.vhd。本設(shè)計(jì)采用的芯片是Altera公司的Flex10k系列FPGA芯片EPF10K30ETC144-1,源文件通過編譯后系統(tǒng)的提示編譯成功,如圖1所示。
建立波形仿真文件,設(shè)置控制信號(hào)m[1:0]的值分別為0和,2,在仿真窗口觀察仿真波形,仿真結(jié)果正確。仿真波形見圖2、圖3。
5.結(jié)束語(yǔ)
在本文編寫的源程序中,輸出端口y的范圍定義為0到20,是由于計(jì)數(shù)的模最大設(shè)置為19的緣故,這個(gè)定義在源程序編譯后,會(huì)由編譯器自動(dòng)生成一個(gè)5位二進(jìn)制的輸出端口,即實(shí)際的輸出端計(jì)數(shù)范圍是0到31,而源程序中設(shè)定的計(jì)數(shù)模最大不能超過32。如果需要增加計(jì)數(shù)模的值,在定義端口y的時(shí)候,就要增大y的輸出范圍,而系統(tǒng)進(jìn)行編譯的時(shí)候會(huì)自動(dòng)生成相應(yīng)位數(shù)的輸出端口,從這點(diǎn)來(lái)看,VHDL語(yǔ)言設(shè)計(jì)的靈活性要遠(yuǎn)遠(yuǎn)好于原理圖輸入法、狀態(tài)圖輸入法、波形輸入法。
參考文獻(xiàn)
[1]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2002.
[2]楊曉慧,楊永健.基于FPGA的EDA/SOPC技術(shù)與VHDL[M].北京:國(guó)防工業(yè)出版社,2007.
[3]譚會(huì)生,瞿遂春.EDA技術(shù)綜合應(yīng)用實(shí)例與分析[M].西安:西安電子科技大學(xué)出版社,2004.
[4]吳繼華,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.
本文鏈接:http://edgebase.com.cn/v-141-3380.htmlvhdl語(yǔ)言范文8篇
相關(guān)文章:
經(jīng)典的美文摘抄和賞析11-02
最新教練年終工作總結(jié)報(bào)告(五篇)08-09
《愛麗絲夢(mèng)游仙境》讀后感11-09
范愛農(nóng)的讀后感三百字11-01
《白牙》讀后感07-17
學(xué)會(huì)傾聽作文600字10-26
珍惜的名言警句10-12
包餃子三年級(jí)500字作文09-14
經(jīng)典的對(duì)07-23