基于Max+PlusⅡ與VHDL的數字電壓表設計(2)
該模塊將A/D轉換結果分為高低4位,查表依次得到其BCD碼后再進行計算,計算結果與A/D轉換器的位寬和參考電壓Vref均有關。本文選用8位轉換器ADC0804,參考電壓為5.12V,故能輸出從0~5.12V按照0.02V步進變化的256(28)個離散值。如表1所示。
電壓離散值可用8位二進制(或2位十六進制數)表示,表1中列出了輸出數字電壓高4位及低4位可能出現的16個值。如果CPLD從ADC20804接收到信號01101000B(即68H),對照表1高4位0110B是1.92V,而低4位1000B是0.16V,則最后的電壓輸出結果是1.92+0.16=2.08V。
本文要求精確到兩位小數0.01V,故將輸出電壓表示成12位的BCD碼形式。如上述的1.92V是(000110010010)BCD,0.16V是(000000010110)BCD,相加結果2.08V是(001000001000)BCD。同理,若CPLD轉換數據01110000B(即70H),則計算結果2.24 V是(001000100100)BCD。因此計算模塊的設計主要包括一個12位的加法器及與之對應的存儲器。
主要VHDL語句如下:
3 仿真結果
CPLD設計完成后,用Max+Plus II軟件編譯和仿真,波形如圖3所示。由圖3可知,CPLD工作時,先啟動控制模塊,它對模數轉換的一次控制由四個狀態組成。在狀態S0,選定ADC0804,為模數轉換做準備;在狀態S1,使ADC0804進行轉換,當CPLD的INTR信號端由高電平轉為低電平時,模數轉換結束進入下一狀態S2,為讀取轉換結果做準備;在狀態S3,CPLD讀取模數轉換結果。接著,CPLD的計算模塊工作,求出二進制模數轉換數據的12位BCD碼。最后啟動顯示驅動模塊,用數碼管顯示有兩位小數的數字電壓值。例如,模數轉換結果即CPLD的輸入信號Din[7..0]若為68H,則輸出電壓Dout[11..0]是2.08V,Din[7..0]為70H時,輸出電壓Dout[11..0]是2.24V,符合設計要求。
4 結 語
本文數字電壓表的功能由VHDL程序決定,用Max+PlusⅡ軟件編譯、仿真和邏輯綜合后,下載到CPLD芯片EPF10K10LC84-4。CPLD工作主頻為100 MHz,邏輯綜合占用了174個邏輯單元,資源利用率為30%。本文所設計的數字電壓表電路板已通過硬件測試,能測量和顯示0~5V的弱電壓信號,準確度為0.02V,并已在我校EDA工程實訓中心測試成功。保持CPLD芯片不變,將輸入信號改為溫度信號、濕度等信號分別測試時,均能顯示相應的數字值,因此,基于這種設計方法的數字電子系統具有很強的靈活性。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關閱讀:
- [FPGA/ASIC技術] VHDL語言中信號的不同形式設置 2011-10-06
- [EDA/IC設計] EDA技術在數字系統設計分析中的應用 2011-09-27
- [EDA/IC設計] 基于EDA技術的數字頻率計的設計 2011-09-27
- [FPGA/ASIC技術] 基于VHDL及FPGA的自動售貨機控制模塊設計 2011-09-27
- [EDA/IC設計] 基于MAX+plusⅡ開發平臺的EDA設計方法 2011-09-16
- [FPGA/ASIC技術] 基于VHDL的異步FIFO設計 2011-08-18
- [FPGA/ASIC技術] 用VHDL語言開發的出租車計費系統設計 2011-07-20
- [FPGA/ASIC技術] 用VHDL設計有限狀態機的方法 2011-05-28
( 發表人:葉子 )