韓 錚,于明軍
(赤峰學院 物理與電子信息工程學院,內蒙古 赤峰 024000)
EDA教學中譯碼器與顯示接口電路的設計
韓 錚,于明軍
(赤峰學院 物理與電子信息工程學院,內蒙古 赤峰 024000)
本文利用QuartusⅡ集成開發環境來完成譯碼器、LCD、流水燈等電路的設計,以FPGA實驗開發板為運行載體,FPGA開發板FA280核心器件為Altera CycloneⅡ系列的EP2C8Q208,通過開發板上的USB Blaster將程序下載到開發板,實現VHDL硬件語言設計的譯碼器、LCD及數碼管顯示接口電路的運行顯示.
QuartusⅡ;譯碼器;顯示接口
在信息時代的今天,科技飛速發展,電子產品更新換代迅速,傳統的設計方法再也不能滿足市場需求,因此EDA技術在一些電子領域取得了驚人的成績.當然,緊隨科技腳步的高校自然也不會落后,由此EDA技術便在電子信息類專業中發展起來了.但傳統的授課方式,讓我們只能在課堂上通過老師的講解來接觸到EDA技術,抽象的知識讓學生很難去深入理解和探索,這樣理論與實踐相結合就顯得尤為重要了.EDA是將計算機技術應用到電子電路設計中,在QuartusⅡ環境中,運用輸入原理圖或硬件語言進行編譯與仿真的技術.在開發板上可以實現數碼管、LCD、流水燈、蜂鳴器等顯示和發聲的效果.
本文用到的實驗板是FPGA開發板FA280,FA280板載有SDRAM,FLASH以及USB Blaster下載線電路.利用QuartusⅡ集成開發環境來完成前期設計,以FPGA實驗開發板為運行載體,來完成VHDL、Verilog HDL等一些硬件語言的運行顯示.
FPGA開發板FA280,其核心器件為Altera CycloneⅡ系列的EP2C8Q208,是包含192個引腳,其中I/O口有183個,板載存儲器包括SDRAM HY57V641620和Bytes,FLASH AM29LV320,存儲空間分別為 8M和 4MBytes. SDRAM與系統總線速度同步,可避免不必要的等待周期.
接口包括:PS2接口、VGA接口、RS232串口、USB下載接口.開發板具有USB Blaster下載線電路,插上USB線即可進行下載,通過撥動USB下載接口開關選擇JTAG或AS下載方式.
顯示設備包括6位7段紅光數碼管,8位綠色LED發光二極管,LCD1602和LCD12864顯示屏接口插座.
復位電路由一個復位按鍵和一個復位芯片組成的,可以將電路恢復到起始狀態(相當于清零按鈕).復位芯片為MAX811R,可將輸出脈沖寬度為140ms、門限為2.63V的低電平有效復位脈沖信號提供給FA280.
電源部分包括1117-3.3和1117-1.2各一片,從功能板分別引入3.3V和1.2V的直流電源作為EP2C8的核心電源電壓,并在核心板上加入濾波電容,以確保芯片和電源系統的穩定性.
其他還包括一個蜂鳴器、4位獨立按鍵、電源插座和開關、SD卡座、擴展總線(GPIO)和有源晶振.
3.1 硬件描述語言VHDL
高級硬件描述語言VHDL已成為IEEE標準,適用于行為級和RTL級的描述,最適于描述電路行為,并在設計時可以不了解電路的結構細節.VHDL主要用于描述數字系統的結構、行為、功能和接口,其設計的基本點是將設計實體分成內、外部分.完整的VHDL程序要包含庫、程序包、實體、構造體和配置等部分,它的描述語句和常用語句都有其固定的格式,并且有自己的語法,不允許不同類型的數據在表達式中自由組合.
3.2 開發流程
QuartusⅡ作為一個綜合性的開發平臺,可以完成多種功能的實現.QuartusⅡ的設計流程:首先輸入HDL等形式的設計文本,接著根據設計要求設定編譯方式和策略,然后進行設計校驗(仿真和定時分析),最后進行編程與驗證(將編程文件配置到PLD中).設計過程中,如果出現錯誤,則回到設計輸入階段改錯,然后重復以上步驟.
設計輸入:設計輸入可以用HDL方式或原理圖錄入方式.一般可以使用原理圖來設計最頂層,將整個設計的結構描述清楚,具體實現各模塊時用HDL.對于HDL方式的設計輸入,可以采用Verilog和VHDL,我們這里采用VHDL語言來實現.
綜合:綜合工具將設計轉換成包含邏輯單元和邏輯單元間連接的網表文件.
功能仿真:對已經綜合的電路的功能進行驗證,功能仿真不涉及任何時序方面的內容.
配置:將綜合產生的網絡表中的邏輯單元映射到CPLD/FPGA器件中的LE,這里還包含器件中LE間連接和路由的選擇.
時序分析和時序仿真:通過分析配置后的電路各個路徑上的傳輸延時,獲得電路的性能情況.這里的時序仿真將結合器件時間參數,與前面的功能仿真不同,功能仿真只關注與源程序的邏輯是否正確.
編程:在CPLD/FPGA器件內實現設計,包括邏輯單元和邏輯單元間的連接.
在做一個設計時,通常要對功能進行模塊劃分,每個模塊對應一個源文件,用一個唯一的頂層文件將這些模塊源文件組合起來,形成一個整體設計.頂層文件完成模塊的例化工作,頂層文件可以用HDL語言編寫,也可以用原理圖的方式.
4.1 3線-8線譯碼器
3線-8線譯碼器的仿真過程:運行Quartus II軟件,建立工程項目,工程命名為lq.建立一個VHDL文件,命名為lq,文件后綴為.vhd,再將程序寫入并保存,然后編譯,確保沒有錯誤后進行仿真,周期設為100ns.將輸入端A2、A1、A0三位二進制代碼按照真值表設定好;S_0、S_1、S_2為控制輸入端,當s_0 and(not s_1)and(not s_2)為1時,譯碼器工作,當它為0時,譯碼器全為高電平;輸出端Z-n7到Z-n0.在對端口進行設定,將A2、A1、A0和總控制端S設定為K1、K2、K3、K4四位獨立按鍵作為輸入端,其端口依次為I/O74、I/O72、I/O75、I/O76.輸出端 Z-n7~Z-n0對應的是LED8~LED1,其端口依次是I/O181、I/O175、I/O171、I/O169、I/O170、I/O173、I/O180、I/O182.設定好之后,再次進行編譯仿真,沒有錯誤即可進行配置,可以實現輸入四位二進制代碼,按照其原意翻譯成相應的輸出信號,體現在LED燈上.仿真波形如圖1所示.

圖1 仿真波形
4.2 LCD顯示
LCD的仿真過程:運行Quartus II軟件,建立工程項目,工程命名為lcd1602.建立一個VHDL文件,命名為lcd1602,文件后綴為.vhd,再將程序寫入并保存,然后編譯,確保沒有錯誤后進行仿真.先進行端口說明,輸入端為:start-啟動顯示、cmd-命令、dat_i-等顯示的字符數據、clk-時鐘、rst-復位信號(低電平有效).輸出端為:lcd_e-lcd1602使能、lcd_rw-lcd1602讀取有效、lcd_di-lcd1602數據/命令選擇信號、lcd_dat-lcd1602數據、ok.完成對lcd1602的驅動,使lcd1602初始化,并顯示字符.
然后以同樣步驟建立名為lcddemo_ctrl的工程,到編譯仿真.再進行端口說明,輸入端為:ack -接收數據方已確認(上升沿有效)、init_ok-顯示屏初始化完成、clk-時鐘輸入、rst-復位信號輸入.輸出端為:stb-輸出數據通知信號,上升沿有效、dat-輸出數據.還要對列出文本文件的內容進行設定(參考),就可以完成在lcd1602上顯示兩行字符“made by liu qin”.當然也可以顯示其他內容,根據ASCII字符表編輯想要顯示的代碼,便可顯示想要的字符.
4.3 流水燈
流水燈的設計主要由三個模塊和一個頂層文件組成,其模塊劃分及功能說明如表1、表2:
FA280開發板硬件具有8位LED,為低電平驅動方式,即低電平點亮高電平熄滅.
本實驗中實現以提供低電平方式點亮8個LED中的某一個或多個,其點亮模式代表了數據0~9和A~F,兩次點亮的時間間隔為1s,以15s的周期循環重復.流水燈點亮方案如表2.流水燈顯示仿真過程是對三個模塊和一個頂層文件進行編譯仿真,具體操作步驟如上兩個實例.運行Quartus II軟件,分別建立工程項目、VHDL文件,再將程序寫入并保存,然后編譯,確保沒有錯誤后進行仿真.并對各模塊的端口進行說明,實現其具體功能,完成流水燈的顯示.

表1 模塊劃分及功能說明表

表2 LED點亮方案
本設計應用QuartusⅡ 9.0軟件,采用VHDL語言,按照開發流程完成3線-8線譯碼器、LCD和流水燈的設計,得到相應的仿真波形并下載到實驗開發板上觀察顯示實驗結果.這個過程讓學生熟悉了EDA技術和實驗開發板的功能,及相關軟件的應用.
〔1〕廖超平,EDA技術與VHDL實用教程.高等教育出版社,2007.
〔2〕閆石.數字電子技術基礎.高等教育出版社,2006.
〔3〕汪國強.華成英,EDA技術與應用.電子工業出版社,2005.
〔4〕侯伯亨.VHDL硬件描述語言與數字邏輯電路設計.西安電子科技大學出版社,2009.
〔5〕潘松.EDA技術與應用.清華大學出版社,2005.
〔6〕吳繼華,王誠.ALTERA FPGA/CPLD設計(基礎篇).人民郵電出版社,2005.
〔7〕黃任.VHDL入門·解惑·經典實例[M].北京航空大學出版社,2005.
G642
A
1673-260X(2015)05-0059-02