摘要:隨著社會的發(fā)展,各種電子產(chǎn)品和工業(yè)控制的要求越來越高。這必然會推動現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)。進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)有多種方法和多種的設(shè)計(jì)工具,隨著EDA計(jì)術(shù)的發(fā)展,為現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)提供了靈活,快捷的途徑。本文通過介紹Verilog_HDL 語言和Quartus II工具來對現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)方法和流程進(jìn)行描述。最后通過設(shè)計(jì)一個交通燈控制器對現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)進(jìn)行詳細(xì)的介紹。
關(guān)鍵詞:EDA技術(shù);Verilog-HDL;數(shù)字電路設(shè)計(jì);現(xiàn)代數(shù)字系統(tǒng)
前言:隨著社會的發(fā)展,各種電子產(chǎn)品和工業(yè)控制的要求越來越高。這必然會推動數(shù)字系統(tǒng)的設(shè)計(jì)。進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)有多種方法和多種的設(shè)計(jì)工具,隨著EDA計(jì)術(shù)的發(fā)展,為現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)提供了靈活,快捷的途徑。EDA以計(jì)算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)和智能化技術(shù)的最新成果而開發(fā)出的電子CAD通用軟件包。它根據(jù)硬件描述語言(HDL)完成設(shè)計(jì)文件,自動完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局布線及仿真,直至可實(shí)現(xiàn)對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。本文通過介紹Verilog_HDL 語言和Quartus II工具來對現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)方法和流程進(jìn)行描述。最后通過設(shè)計(jì)一個交通燈控制器對現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)進(jìn)行詳細(xì)的介紹。
1 Verilog-DHL 語言介紹
從語法結(jié)構(gòu)上看,Verilog HDL語言與C語言有許多相似之處,并繼承和借鑒了C語言的多種操作符和語法結(jié)構(gòu)。下面列出的是Verilog HDL硬件描述語言的一些主要特點(diǎn):
借用高級語言的結(jié)構(gòu)和語句,例如條件語句、賦值語句和循環(huán)語句等,在Verilog HDL中可以使用,簡化了電路的措述和方便了設(shè)計(jì)人員的使用。
能夠在多個層次上對所設(shè)計(jì)的系統(tǒng)加以描述.從開關(guān)級、門級、寄存器級(RTL)到功能級和系統(tǒng)級,都可以描述。設(shè)計(jì)的規(guī)??梢允侨我獾?,語言不對設(shè)計(jì)的規(guī)模施加任何限制。并且具有混合建模能力,即在一個設(shè)計(jì)中各個模塊可以在不同設(shè)計(jì)層次上建模和描述。
基本邏輯門,例如and、or和nand等都內(nèi)置在語言中;開關(guān)級結(jié)構(gòu)模型,例如pmos和nmos等也被內(nèi)置在語言中,用戶可以直接調(diào)用。用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時序邏輯原語。
Verilog HDL的基本設(shè)計(jì)單元是\"模塊(block)\"。一個模塊是由兩部分組成的:一部分描述接口;另一部分描述邏輯功能,即定義輸入是如何影響輸出的。
2Quartus II 簡介
Quartus II是Altera公司推出的FPGA/CPLD的開發(fā)工具,其具有功能強(qiáng)大,使用靈活方便等優(yōu)勢。通過使用Quartus II軟件,用戶可以創(chuàng)建,組織和管理自己的設(shè)計(jì)。Quartus II軟件的開發(fā)流程如圖1所示。
3 現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)
3.1 現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的優(yōu)勢
傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)一般采用\"搭積木\"式的方法進(jìn)行,是一種在電路板上完成系統(tǒng)設(shè)計(jì)的方法。而現(xiàn)代的數(shù)字系統(tǒng)設(shè)計(jì)則充分利用現(xiàn)代的EDA工具和可編程邏輯器件的發(fā)展,將兩者很好地結(jié)合在一起進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì),給設(shè)計(jì)者的設(shè)計(jì)帶來了很多的方便和靈活性。設(shè)計(jì)者只需對可編程邏輯器件內(nèi)部的邏輯功能和引腳定義好,就能將一個簡單或復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)好。采用現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)大大減輕了設(shè)計(jì)者的工作量和難度,有效地增加了設(shè)計(jì)的靈活性,提高了系統(tǒng)的可靠性和可修改性。
3.2自頂向下的設(shè)計(jì)方法:
現(xiàn)代數(shù)字系統(tǒng)一般采用自頂向下的設(shè)計(jì)方法,設(shè)計(jì)這首先需要對整個系統(tǒng)的設(shè)計(jì)進(jìn)行方案設(shè)計(jì)和模塊劃分,再對幾個模塊進(jìn)行綜合,就可以方便,靈活地設(shè)計(jì)出一個可靠性很高的數(shù)字系統(tǒng)。自頂向下的設(shè)計(jì)方法如圖2所示:
這樣,系統(tǒng)就從高層次的抽象功能模塊變成了獨(dú)立的易于實(shí)現(xiàn)的低層次功能模塊,在所有功能模塊都確定下來后,就可以用Verilog HDL語言描述具體電路模塊,并進(jìn)行仿真測試,實(shí)現(xiàn)每個功能塊,然后把這些設(shè)計(jì)好的功能獨(dú)立相對完整的功能塊連接起來,完成整個設(shè)計(jì)。
4 設(shè)計(jì)實(shí)例
本文通過一個交通燈控制器的設(shè)計(jì)對應(yīng)用Verilog-HDL語言和Quartus II工具進(jìn)行詳盡的描述。設(shè)計(jì)好方案是關(guān)鍵,本文采用Verilog_HDL中的并行語句對東西和南北方向的紅,黃,綠燈進(jìn)行循環(huán)控制。在涉及的譯碼顯示部分則采用多個并行的譯碼器對時間進(jìn)行顯示,這樣對電路的設(shè)計(jì)進(jìn)行了優(yōu)化,更好地消除了毛刺。分頻器和譯碼器的設(shè)計(jì)是本文的一個關(guān)鍵,編寫程序時可以將分頻器和譯碼器當(dāng)作兩個功能模塊來分析,從而使程序的流程得到了很好的簡化。東西和南北方向的紅,黃,綠燈的循環(huán)控制則采用兩個并行的always語句進(jìn)行,在循環(huán)控制里主要是進(jìn)行一個減法器的設(shè)計(jì)。減法器的具體程序如下:
if(numa>1)
if(numa[3:0]==0)
begin
numa[3:0]<=4'b1001;
numa[7:4]<=numa[7:4]-1;
end
else
numa[3:0]<=numa[3:0]-1;
end
if(numa==2)
begin
tempa<=0;
程序在Quartus II工具編寫完成后,進(jìn)行編譯,編譯成功則進(jìn)行時序仿真,時序仿真圖如圖3所示。得到與方案一致的結(jié)果后,則可以下載到目標(biāo)芯片。再在DE2目標(biāo)板上進(jìn)行實(shí)際的操作。這樣,完成了一個數(shù)字系統(tǒng)的設(shè)計(jì)。
可見,應(yīng)用Verilog_HDL語言和Quartus II工具進(jìn)行現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)是非常靈活和可靠的。
結(jié)束語
通過對一個交通燈控制器的設(shè)計(jì),可以看出以HDL語言和可編程邏輯器件為基礎(chǔ)的現(xiàn)代系統(tǒng)的設(shè)計(jì)帶來的靈活性和可靠性,為設(shè)計(jì)者的設(shè)計(jì)提供了更多的設(shè)計(jì)方案和思路。目前,硬件描述語言Verilog_HDL 已經(jīng)成為電子設(shè)計(jì)自動化領(lǐng)域進(jìn)行自上向下設(shè)計(jì)的應(yīng)用方向,它是專用數(shù)字集成電路設(shè)計(jì)描述的有力工具,同時也是邏輯綜合和優(yōu)化的重要基礎(chǔ),作為一重要的高層設(shè)計(jì)技術(shù),用Verilog_HDL硬件描述語言的形式來進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真極大地減少了電路設(shè)計(jì)時間和可能發(fā)生的錯誤, 降低了開發(fā)成本,這種設(shè)計(jì)方法必將在未來的數(shù)字系統(tǒng)設(shè)計(jì)中發(fā)揮越來越重要的作用。
參考文獻(xiàn)
[1] 徐志軍,徐光輝.CPLD/F PGA 的開發(fā)和應(yīng)用[M ] . 北京:電子工業(yè)出版社,2002。
[2] 趙曙光.可編程邏輯器件原理、開發(fā)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2000。
[3] 李冬梅. PLD器件與EDA技術(shù)[M] . 北京:北京廣播學(xué)院出版社,2000。