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