国产精品无码无卡无需播放器,日韩AV无码午夜免费福利制服,世界上面积最大的国家,黑森林福利视频导航

vhdl語言范例6篇

前言:中文期刊網(wǎng)精心挑選了vhdl語言范文供你參考和學習,希望我們的參考范文能激發(fā)你的文章創(chuàng)作靈感,歡迎閱讀。

vhdl語言

vhdl語言范文1

關鍵詞:8路搶答器控制系統(tǒng);EDA;CPLD;vhdl;仿真

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2007)05-11351-02

1 引言

隨著電子技術的發(fā)展,可編程邏輯器件(PLD)的出現(xiàn),使得電子系統(tǒng)的設計者利用EDA(電子設計自動化)軟件,就可以獨立設計自己的專用集成電路(ASIC)器件??删幊踢壿嬈骷且环N半導體集成器件的半成品。在可編程邏輯器件的芯片中按一定方式(陣列形式或單元陣列形式)制作了大量的門、觸發(fā)器等基本邏輯器件,對這些基本器件適當?shù)剡B接,就可以完成某個電路或系統(tǒng)的功能。

8路搶答器控制系統(tǒng)是工廠、學校和電視臺等單位舉辦各種智力競賽等娛樂活動中經(jīng)常使用的重要基礎設備之一。目前設計搶答器的方法很多,例如用傳統(tǒng)的PCB板設計、用PIC設計或者用單片機設計。而用VHDL可以更加快速、靈活地設計出符合各種要求的搶答器,優(yōu)于其他設計方法,使設計過程達到高度自動化。本文介紹的八路數(shù)顯搶答器基于VHDL語言、以EDA技術作為開發(fā)手段、采用CPLD(復雜的可編程邏輯器件)作為控制核心設計而成。與傳統(tǒng)設計相比較,不僅簡化了接口和控制,也提高了系統(tǒng)的整體性能和工作可靠性,具有電路簡單、成本低廉、操作方便、靈敏可靠等優(yōu)點。

2 設計思路與系統(tǒng)結構

2.1 8路搶答器控制系統(tǒng)的設計思路與功能

根據(jù)搶答要求,系統(tǒng)所需實現(xiàn)的功能如下:

(1)設計制作一個競賽搶答器,共設8個組別每組控制一個搶答開關,分別為sl,s2,…,s8。

(2)設置主持人控制鍵Reset,用于控制整個系統(tǒng)清零和搶答有效控制。

(3)主持人發(fā)出開始命令,8人開始搶答。其中一人先按下?lián)尨疰I,蜂鳴器發(fā)出鳴叫,數(shù)碼顯示該人號碼,其他人再按鍵,系統(tǒng)不再響應,直至主持人按鍵清零,下一次搶答開始。

2.2 系統(tǒng)原理結構框圖

根據(jù)以上設計思路與功能要求,設計系統(tǒng)結構框圖,見圖1所示。該系統(tǒng)共分六個組成部分:主持人控制電路、CPLD控制模塊、脈沖振蕩電路、8人(組)搶答電路、數(shù)碼顯示電路、蜂鳴器聲響電路。

圖中脈沖振蕩電路用于產(chǎn)生標準時鐘信號,為系統(tǒng)提供CLK信號;數(shù)碼顯示部分顯示搶答成功者的組別號??刂撇糠质荅DA設計的核心部分,用硬件描述語言(VHDL)來描述數(shù)字系統(tǒng)的結構、行為和功能,采用“自頂向下”設計方法,將電路的硬件設計轉(zhuǎn)變?yōu)檐浖O計。

圖1 8路搶答器控制系統(tǒng)結構框圖

3 硬件設計

VHDL語言設計的出現(xiàn)從根本上改變了以往數(shù)字電路的設計模式,使電路由硬件設計轉(zhuǎn)變?yōu)檐浖O計,使電子設計的核心轉(zhuǎn)化為VHDL語言的編程設計,這樣提高了設計的靈活性,使電路的設計復雜程度大大降低。

(1)主持人控制電路和8人搶答電路,每人(組)各設一個按鍵開關,分別為reset、sl,s2,…,s8,每個開關接一個電阻和一個電源Vcc,當按鍵按下為高電平有效;

(2)CPLD控制芯片采用Altera公司MAX7000S系列的EPM7128SLC84-15來實現(xiàn);

(3)脈沖振蕩電路,石英晶體振蕩電路如圖,c1、c2為微調(diào)電容;

(4)蜂鳴器聲響電路。當BELL為高電平時,三極管導通,蜂鳴器發(fā)出聲響。當BELL為低電平時,三極管截止,蜂鳴器不發(fā)聲;

(5)數(shù)碼顯示采用共陰極7位二進制輸入8字管。

4 基于VHDL的設計

VHDL是用來描述從抽象到具體級別硬件的工業(yè)標準語言,它是由美國國防部在20世紀80年代開發(fā)的HDL,現(xiàn)在已成為IEEE承認的標準硬件描述語言。VHDL支持硬件的設計、驗證、綜合和測試,以及硬件設計數(shù)據(jù)的交換、維護、修改和硬件的實現(xiàn),具有描述能力強、生命周期長、支持大規(guī)模設計的分解和已有設計的再利用等優(yōu)點。

VHDL主要用于描述數(shù)字系統(tǒng)的結構、行為和功能,其程序結構特點是將一個電路模塊或一個系統(tǒng)分成實體(外部端口)和構造體(內(nèi)部功能算法實現(xiàn))兩部分實現(xiàn)。對于一個電路模塊或者數(shù)字系統(tǒng)而言,定義了外部端口后,一旦內(nèi)部功能算法完成后,其他系統(tǒng)可以直接依據(jù)外部端口調(diào)用該電路模塊或數(shù)字系統(tǒng),而不必知道其內(nèi)部結構和算法。VHDL的特點使得電子系統(tǒng)新的設計方法一一“自頂向下”設計方法更加容易實現(xiàn)。

圖2 8路搶答器原理圖

本設計在MAX+plusⅡ環(huán)境中進行,MAX+plusⅡ是美國ALTERA公司提供的FPGA/CPLD開發(fā)集成環(huán)境。MAX+plusⅡ界面友好,使用便捷,被譽為業(yè)界最容易的EDA軟件。

下面詳細論述使用MAX+plusⅡ軟件設計8路搶答器控制系統(tǒng)的過程。

4.1 VHDL實體設計

端口部分共設計10個輸入端口,8個輸出端口。輸入端口包括1個脈沖端口、1個主持人控制端口和8人搶答端口。輸出端口包括1個蜂鳴器輸出端口和8字管輸出管端口。

8路搶答器實體部分的VHDL代碼:

ENTITY barenqiangda IS

PORT(s: IN STD_LOGIC_VECTOR(7 downto 0);[8人搶答輸入端口定義]

reset,clk: IN STD_LOGIC; [主持人復位和脈沖端口定義]

a: OUT STD_LOGIC_VECTOR(0 downto 6); [8字管輸出端口定義]

bell: OUT STD_LOGIC);[蜂鳴器輸出端口定義]

END barenqiangda;

4.2 VHDL構造體設計

8路搶答器實體部分以并行處理語句――進程(PROCESS)語句為基本語句,該程序以復位、脈沖和8人搶答答信號為敏感信號,當敏感信號發(fā)生變化時,進程被激活,順序執(zhí)行內(nèi)部語句。

構造體部分VHDL代碼:

4.3 芯片設置、編譯、管腳設置

程序輸入完成后然后選擇用于編程的目標芯片:選擇菜單“Assign”“Device”,窗口中的Device Family是器件序列欄,先在此欄中選擇MAX7000S。然后選擇7128SLC84-15器件,按OK,就可以進行編譯了。經(jīng)“MAX+PLUSE II”中的“Compiler”菜單編譯,以驗證設計結果是否符合要求,如果有問題,則返回原設計文件再次進行修改,直到正確為止。

編譯無誤后經(jīng)“MAX+PLUSE II”中的“FLOORPLAN EDITOR”菜單,進行輸入、輸出管腳設置,將18個元件端口放置到EPM7128SLC84-15芯片適當?shù)腎/O口,并用手工調(diào)整按圖2所示設置。

4.4 仿真

編譯成功后進行仿真。首先建立波形文件。波形文件建好并存盤后。選擇菜單“Max+plusII”“simulator”,啟動仿真操作,結束后觀察仿真波形(圖3所示)。從仿真波形看,符合設計要求。

圖3 邏輯功能仿真波形

4.5 下載實驗

仿真結束后,就可將文件下載到芯片中。連接硬件系統(tǒng)后,通上電源,經(jīng)“MAX+PLUSE II”中的“PROGRAMMER”菜單,調(diào)出編程器窗口。一切就緒后,按下編程器窗口中的“program”按鈕,設計的內(nèi)容就開始下載到CPLD芯片EPM7128SLC84-15中。經(jīng)實際電路測試驗證,達到了設計的要求。

5 結束語

VHDL語言設計的出現(xiàn)從根本上改變了以往數(shù)字電路的設計模式,使電路由硬件設計轉(zhuǎn)變?yōu)檐浖O計,使電子設計的核心轉(zhuǎn)化為VHDL語言的編程設計,這樣提高了設計的靈活性,降低了電路的復雜程度,修改起來也很方便。并且整個設計很大一部分由電腦輔助來完成,大大縮短了設計周期,減少了設計費用,降低了設計風險。這種數(shù)字系統(tǒng)的設計可以直接面向用戶需求,根據(jù)系統(tǒng)的行為功能要求,自上至下地逐層完成相應的描述、綜合、優(yōu)化、仿真與驗證,直到生成器件,體現(xiàn)了EDA的自動化特點。

參考文獻:

[1]郭勇. EDA技術基礎(第2版)[M]. 機械工業(yè)出版社,2005.314-320.

vhdl語言范文2

【關鍵詞】數(shù)字電路;VHDL;教學改革;設計方法

1.引言

數(shù)字電路是理工科中的電類專業(yè)和計算機專業(yè)必修的專業(yè)基礎課程,也是信息類各專業(yè)的平臺課程。該課程在介紹有關數(shù)字系統(tǒng)基本知識、基本理論、基本電路的基礎上,重點討論數(shù)字系統(tǒng)中各種邏輯電路分析與設計的基本方法,以及該領域的發(fā)展現(xiàn)狀及最新的技術。設置該課程的主要目的是為了讓學生了解各種基本邏輯電路,能熟練地運用有關知識和理論對各類邏輯電路進行分析設計。目前, 大多數(shù)高等院校仍是采用傳統(tǒng)的數(shù)字電路教學模式, 以教材為中心,過于強調(diào)基本原理、公式的推導以及波形的分析,往往讓學生覺得抽象,不能夠很好地理解電路、集成芯片的功能及應用。而實驗環(huán)節(jié)主要在實驗箱上完成,開設的是一些驗證性的實驗,對各實驗項目的電路設計以手工為主,一般遵循自底向上的設計方法,從電路的功能分析,真值表、表達式、邏輯電路圖到器件的選擇、連線、測試等,學生的認識僅僅停留在局部小部件上,復雜的系統(tǒng)設計思想受到限制。在數(shù)字電子技術飛速發(fā)展的今天,大規(guī)模以及超大規(guī)模集成電路的廣泛應用,這種缺乏實用性和創(chuàng)新性的傳統(tǒng)教學模式,已不再適應現(xiàn)代應用型人才的培養(yǎng)。因此,教學需要融入新技術 、突破傳統(tǒng)教學模式,引入VHDL語言的數(shù)字電路教學改革就成為一個重要的研究課題。

2.VHDL語言及其特點

超高速集成電路硬件描述語言(VHDL) 是一種用于數(shù)字電路設計的高級語言,是被IEEE和美國國防部確認為標準的硬件描述語言,其主要用于描述數(shù)字電路的結構,行為,功能和接口?;谶@種描述結合相關的軟件工具,可以得到所期望的實際數(shù)字電路。利用VHDL語言進行電路設計具有以下幾個特點:

(1)VHDL可用于設計復雜的、多層次的設計,并且支持設計庫和設計的重復使用;

(2)與其他的硬件描述語言相比,VHDL具有更強的行為描述能力;

(3)VHDL有豐富的仿真語句和庫函數(shù),使其在設計的早期就能查驗設計系統(tǒng)的功能可行性,借助于相關仿真器隨時可對設計進行仿真模擬;

(4)對于VHDL完成的一個確定的設計,一般可進行邏輯綜合和優(yōu)化,并能自動的把VHDL描述設計轉(zhuǎn)變成門級網(wǎng)表;

(5)VHDL語言支持電路描述由高層向低層的綜合變換,便于文檔管理,易于理解和設計的再利用;

(6)VHDL對于設計的描述具有相對獨立性,設計者可以不懂硬件的結構,最終實現(xiàn)的目標器件設計。

3.VHDL語言較傳統(tǒng)設計方法的優(yōu)點

通過上述特點,我們了解到VHDL語言功能強大、設計靈活、容易掌握。將VHDL語言引入數(shù)字電路教學中,有利于增強學生對電路設計的認識,掌握更多的設計方法,提高分析設計能力。本文針對六進制約翰遜計數(shù)器的設計,分別采用了傳統(tǒng)設計方法和VHDL方法進行設計,通過對比可得出,VHDL可以顯著提升數(shù)字電路的教學效果。

3.1 傳統(tǒng)設計方法

傳統(tǒng)電路設計采用自底向上的設計方法如圖1所示。本文選用JK、D觸發(fā)器及門電路來實現(xiàn),采用3個觸發(fā)器連接產(chǎn)生8個狀態(tài),六進制約翰遜計數(shù)器只有6個狀態(tài),將其中的010,011兩個狀態(tài)禁止掉,具體狀態(tài)轉(zhuǎn)換表如表1所示。

圖1 自底向上設計方法

表1 狀態(tài)轉(zhuǎn)換表

CLK Q2n'Q1n'Q0n Q2n+1'Q1n+1'Q0n+1

1 0..0..0 0...0...1

2 0..0..1 0...1...1

3 0..1..1 1...1...1

4 1..1..1 1...1...0

5 1..1..0 1...0...0

6 1..0..0 0...0...0

由狀態(tài)轉(zhuǎn)換表得出狀態(tài)方程:

,,

將Q2,Q1選用D觸發(fā)器,Q0選用JK觸發(fā)器,得出驅(qū)動方程:

,,,

根據(jù)驅(qū)動方程最終畫出邏輯原理圖如圖2所示。

圖2 邏輯原理圖

在得到邏輯原路圖后,還需要進行邏輯驗證,驗證無誤后再對邏輯原理圖進行邏輯驗證無誤后,在PCB版上完成布線、裝配、焊接及調(diào)試,如有問題,再進行局部修改,直至整個電路調(diào)試完畢為止。

圖3 自頂向下設計方法

3.2 VHDL設計方法

VHDL設計采用自頂向下的設計方法如圖3所示。首先根據(jù)設計要求對電路功能進行行為級描述和仿真,然后再進行RTL級描述和仿真,達到預期結果后再進行邏輯綜合、布局布線,最終完成電路設計。

(1)行為描述,也就是對計數(shù)器數(shù)學模型的描述,通過代碼描述出輸入、輸出引腳和計數(shù)過程中狀態(tài)變化時序及關系,具體程序如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

entity counter6 is

port(clk,reset:in std_logic;

count_out:out std_logic_vector(2 downto 0));

end counter6;

architecture rtl Of counter6 is

signal next_count:std_logic_vector(2 downto 0);

begin count_proc:process(clk,reset)

begin if reset='0' then

next_count<="000";

elsif clk'event and clk='1' then

case next_count is

when "000"=>next_count<="001";

when "001"=>next_count<="011";

when "011"=>next_count<="111";

when "111"=>next_count<="110";

when "110"=>next_count<="100";

when "100"=>next_count<="000";

when others=>next_count<="000";

end case;

end if;

count_out<=next_count;

end process;

end rtl;

利用Max+plusⅡ軟件對上述程序進行編譯、仿真,仿真結果如圖4所示,結果表明,該方案符合設計要求。

圖4 仿真結果

(2)RTL描述,即用具體門電路、運算器等來描述行為部分。行為描述程序抽象程度較高,故需轉(zhuǎn)化為RTL方式描述的VDHL程序,以便于映射到具體的邏輯元件,得到硬件的具體實現(xiàn)。對于改寫后的RTL程序同樣需要進行仿真,檢查正確性。

(3)邏輯綜合,利用MAX+PLUS II Advanced Synthsis ALtera將其轉(zhuǎn)換為門級網(wǎng)絡表,輸出邏輯原理圖并進行仿真、檢查定時關系。最后根據(jù)需要利用門級網(wǎng)表做出ASIC芯片或生成FPGA碼點,完成電路設計。

3.3 VHDL與傳統(tǒng)設計方法比較

相較于傳統(tǒng)設計方法,VHDL采用自頂向下的設計方法,可進行結構化、模塊化設計,更利于分工合作,再加上各層次的仿真檢查,便于早期發(fā)現(xiàn)錯誤并改正,提高了設計效率;同時設計描述的相對獨立性,使得學生設計時不必寫表達式、真值表,不必考慮所用器件,降低了設計難度;另外VHDL語言簡單易學,MAX+PLUS II界面友好,通過仿真波形分析,學生能更形象、更深刻的理解所學內(nèi)容。

4.結束語

數(shù)字電路作為專業(yè)基礎課程,其教學效果的好壞,將直接影響后續(xù)相關專業(yè)課程的學習。在數(shù)字電路教學中引入VHDL描述語言,利用MAX+PLUS II進行編譯、仿真、演示,不但豐富了教學內(nèi)容,改進了教學手段,提高學習興趣,還有助于學生消除“抽象感”;另外VHDL能將傳統(tǒng)教學中較難實現(xiàn)的電路設計轉(zhuǎn)換為軟件設計,不僅簡化了設計工作,還有利于增強學生對集成芯片的認識,提高分析設計能力,掌握更多的設計方法,以適應現(xiàn)代應用型人才培養(yǎng)要求。

參考文獻

[1]張?zhí)扈?基于VHDL的數(shù)字電路課程改革研究[J].湖北廣播電視大學學報:2010(02):25-26.

[2]黃紅霞.基于VHDL提升數(shù)字電路教學效果的研究[J].黃石理工學院學報,2010(03):66-70.

[3]譚勇,朱斌.基于EDA技術的數(shù)字電路實驗教學改革[J].中國現(xiàn)代教育裝備,2012(17):43-44.

vhdl語言范文3

關鍵詞:VHDL;計費器;QuartusⅡ;FPGA

中圖分類號:TP312 文獻標識碼:A 文章編號:1006-8937(2013)29-0007-03

出租車是現(xiàn)代人類的重要交通工具,而出租車的計費系統(tǒng)的安全性和先進性是人們普遍關心的問題,要求計費器性能穩(wěn)定,計費準確,以及預防司機作弊行為等等都關系到乘客的切身利益。因此,設計出符合人們普遍要求及放心的產(chǎn)品具有重要的意義。采用模擬電路和數(shù)字電路設計的計價器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試,對于模式的切換需要用到機械開關,機械開關時間久了會造成接觸不良,功能不易實現(xiàn)?;趩纹瑱C設計的計費器更新周期長,而且單片機程序是不通用的,不同的單片機芯片有不同的指令集,因此設計研發(fā)比較困難。利用VHDL語言設計的基于CPLD/FPGA的出租車計費器不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且其開發(fā)周期短、設計靈活、易于調(diào)試、修改方便。

1 出租車計費器的設計要求

1.1 能夠?qū)崿F(xiàn)計費的功能

費用的計算是按行駛的里程收費,設出租車的起價為5.00元,當里程小于3 km時,按起步價計算費用;當里程大于3 km時每公里按1.3元計費。等待累計時間超過2 min,按每分鐘1.5元計費。所以總費用按下式計算:總費用=起費用+(里程-3 km)×里程單價+等候時間×等候單價。

1.2 能夠?qū)崿F(xiàn)顯示的功能

顯示汽車行駛里程:用兩位數(shù)字顯示,顯示方式為“XX”,單位為km。計程范圍為0~99 km,計程分辨率為1 km;顯示等候時間:用兩位數(shù)字顯示分鐘,顯示方式為“XX”。計時范圍為0~59 min,計時分辨率為1 min;顯示總費用:用四位數(shù)字顯示,顯示方式為“XXX.X”,單位為元。計價范圍為0~999.9元,計價分辨率為0.1元。

2 系統(tǒng)總體設計

根據(jù)設計要求,采用自頂向下的設計方法,將整個系統(tǒng)設計分為分頻模塊、計量模塊、計費模塊、控制模塊及動態(tài)掃描顯示模塊,系統(tǒng)組成框圖如圖1所示,其中計量模塊是整個設計的重點。

3 各模塊具體設計

下面將介紹系統(tǒng)各模塊及頂層電路的具體設計。

3.1 分頻模塊

分頻模塊對系統(tǒng)時鐘信號進行分頻,分別得到15 Hz,13 Hz,1 Hz三種頻率;1 Hz作為計量模塊的驅(qū)動信號,計費模塊采用13 Hz、15 Hz的驅(qū)動信號;計量模塊每計數(shù)一次,計費模塊就實現(xiàn)13次或者15次計數(shù),即為實現(xiàn)出租車等待計時的1.5 元/min、計里程時的1.3元/km的收費。那么分頻模塊輸入時鐘頻率應為15×13=195 Hz,由于系統(tǒng)設計硬件驗證時所用EDA實驗箱上面沒有195 Hz的時鐘源,只有192 Hz及16 384 Hz的時鐘源,195 Hz與192 Hz相隔3 Hz,誤差太大,而將16 384 Hz的時鐘源84分頻后得到時鐘信號與195 Hz相差0.047619 Hz,誤差較小,故分頻模塊選擇輸入時鐘頻率clk_16384為16 384 Hz,經(jīng)過兩次分頻得到clk_1(1 Hz),clk_13(13 Hz),clk_15(15 Hz)。

3.2 計量模塊

此模塊主要功能是計算載客時汽車行駛的公里數(shù)及停車等待時的等候時間即完成計程和計時功能。計程器的量程為99 km,滿量程后自動歸零,計時器的量程為59 min,滿量程后自動歸零。輸入端口clk1為計量脈沖信號,是由分頻模塊提供的1 Hz時鐘信號,s是計量開始/停止信號,pause是停車等待信號,fin是汽車的里程脈沖信號。當s=1,pause=0時表示汽車正常行駛,開始計量,clk1的上升沿到來時,若fin為高電平,則以記錄的clk1的脈沖個數(shù)作為汽車行駛的公里數(shù),行駛超過3 km時,en0輸出高電平。s=1,pause=1表示汽車中途停車等待,記錄clk1的脈沖個數(shù),60個脈沖為1 min,當超過2 min時,en1輸出高電平。s=0時不論pause為何值,計量停止,顯示清零。輸出端口k1、k0分別表示里程的十位數(shù)字和個位數(shù)字,m1、m0分別表示等待時間的十位數(shù)字和個位數(shù)字。將設計的VHDL程序編譯之后生成的元件符號圖如圖2所示。

程序編譯通過后對計量模塊進行仿真,仿真圖如圖3所示。在第2個clk1時鐘周期,s信號為1,pause仍為0,里程k0開始計數(shù),計數(shù)到3后,表示汽車行駛超過3 km,需按1.3元/km收費,此時en0輸出高電平。在具體程序設計中,為了縮短硬件測試時間,使得測試時間與實際時間縮短了6倍,既實際時間1 min,測試時間為10 s。所以當s為1、pause為1時,汽車處于載客等待狀態(tài),每10個clk1周期模擬實際的1分鐘,m0的值自動加1,當m0加到2后,表示等待超過2 min,需按1.5元/min收費,此時en1輸出有效脈沖信號。

3.3 控制模塊

控制模塊主要是根據(jù)兩個不同的輸入使能信號ent0和ent1,對兩個輸入脈沖13 Hz及15 Hz進行選擇輸出,提供給計費模塊計費。ent0和ent1分別由計量模塊的en0、en1提供。 其參考程序如下:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity kongzhi is

port(ent0,ent1:in std_logic;

clk_in1:in std_logic;

clk_in2:in std_logic;

clk_out:out std_logic);

end kongzhi;

architecture rt4 of kongzhi is

begin

process(ent0,ent1)

begin

if ent1='1' then

clk_out

elsif ent0='1' then

clk_out

end if;

end process;

end rt4;

3.4 計費模塊

當輸入的start信號不為0時,對不同的輸入脈沖頻率clk2的脈沖個數(shù)進行計數(shù)即為乘車費用,輸出端口c0、c1、c2、c3分別表示費用的小數(shù)位,個位、十位、百位數(shù)字的四位BCD碼輸出。

3.5 動態(tài)掃描顯示模塊

本模塊包括9個輸入端口,2個輸出端口。系統(tǒng)顯示部分利用人眼的視覺暫留效應,采用動態(tài)掃描的方法,點亮8個數(shù)碼管,當輸入數(shù)碼管掃描信號clkweixuan選擇實驗箱上面的750 kHz頻率,硬件現(xiàn)象顯示良好,沒有閃爍的感覺。八個四位BCD碼輸入中wc0、wc1、wc2、wc3分別是計費模塊輸出的c0、c1、c2、c3,即為乘客乘車的費用;Wmin0和wmin1為汽車停車等待時間的個位和十位,wk0、wk1為汽車行駛的公里數(shù)的個位和十位。輸出端口weixuan為數(shù)碼管的片選信號,qout為數(shù)碼管的位選信號。

本模塊包括兩個process,一個process在時鐘信號的控制下從0到7進行循環(huán)計數(shù),不同的計數(shù)值,輸出八個不同的4位BCD碼輸入,并產(chǎn)生數(shù)碼管的片選信號;一個process完成對4位BCD碼輸出值的七段數(shù)碼管顯示譯碼,產(chǎn)生數(shù)碼管位選信號,在這個進程要注意顯示費用個位數(shù)字的數(shù)碼管必須帶小數(shù)點。

3.6 頂層設計

對各個子模塊程序進行編譯,仿真,然后生成各個模塊的元件符號,采用原理圖的輸入方式將各模塊連接起來構成頂層模塊,或者用VHDL語言采用元件例化語句編寫頂層模塊程序。圖4是采用VHDL語言編寫頂層程序生成的RTL電路圖。

4 硬件測試

整個系統(tǒng)程序設計完成,仿真通過后選擇器件。本設計在武漢恒科HK-Ⅵ型EDA實驗箱上進行硬件測試,選擇器件為Atera的FPGA芯片EP1K30TC144-3,然后根據(jù)設計要求合理分配引腳,進行全編譯生成編程文件。連接好實驗箱,將編程文件下載到FPGA器件上,觀察硬件現(xiàn)象。數(shù)碼管顯示初始狀態(tài)如圖5所示。當start=1、pause=1(start輸入高電平,pause輸入高電平),出租車進入等待狀態(tài),行駛路程顯示數(shù)碼管停止計數(shù),等待時間顯示數(shù)碼管跳動計數(shù),同時繼續(xù)計費。圖6為某時刻當前狀態(tài)下的數(shù)碼管顯示,里程為39 km,等待時間為3 min,總費用=5+(39-3)×1.3+(3-2)

×1.5=53.3元,硬件現(xiàn)象完全符合。

5 總 結

本文設計硬件系統(tǒng)采用VHDL語言編程,基于FPGA實現(xiàn)了出租車計費器的計時、計程、計費功能。使用硬件語言描述的形式,可以充分利用FPGA的優(yōu)勢,成本低、靈活性強、功耗小、周期短。使用VHDL語言設計硬件電路,設計與器件無關,具有良好的可移植性。如果出租車計費標準發(fā)生變化時,修改VHDL源程序即可,設計具有一定的實用價值。

參考文獻:

vhdl語言范文4

ISSN Print: 2162-531X

ISSN Online: 2162-5328

Aims & Scope

Advances in Materials Physics and Chemistry contains rapid communications, full-length original research, review articles and comments on interrelationships among synthesis, micro/nanostructures, properties, processing and performance of Materials Science, Physics, and Chemistry. This includes, but is not limited to:

vhdl語言范文5

目前國內(nèi)數(shù)字邏輯課程的教學內(nèi)容多是基于SSI、MSI等器件進行分析和設計,采用的是經(jīng)典的數(shù)字邏輯設計方法,即用真值表、卡諾圖、狀態(tài)轉(zhuǎn)換圖、狀態(tài)轉(zhuǎn)換表、狀態(tài)方程、時序圖、邏輯圖和邏輯函數(shù)表達式等方法,來分析和設計數(shù)字邏輯系統(tǒng)。顯然,對于較復雜的數(shù)字系統(tǒng),因其輸入變量數(shù)、輸出函數(shù)變量數(shù)和狀態(tài)數(shù)的急劇增加,再使用上述這種傳統(tǒng)方法進行分析和設計難以適用,甚至根本無法進行。數(shù)字邏輯課程的實驗環(huán)節(jié)也是基于標準SSI,MSI芯片的所謂硬實驗臺實驗室(Hardware-based Laboratory),這種實現(xiàn)臺不易做成開放性,實驗準備,實驗內(nèi)容和實驗課安排都不靈活,實驗內(nèi)容和效果也受到所供SSI,MSI芯片的限制。如今,數(shù)字化的概念已深入到各個領域,幾乎絕大多數(shù)系統(tǒng)已不是簡單幾個邏輯變量就能完全描述的。然而目前在專門講授數(shù)字系統(tǒng)設計基礎理論和方法的數(shù)字邏輯課程中,絕大多數(shù)高校仍然是沿用了幾十年不變的老方法,顯然已遠遠落后于時代的要求,必須加以改革創(chuàng)新。

2 引進VHDL語言的方法

VHDL的方法克服了傳統(tǒng)方法的弱點,與傳統(tǒng)方法相比有幾處根本優(yōu)點,設計者可以在VHDL描述模型建立之后馬上用仿真手段來驗證系統(tǒng)功能是否滿足要求。這種方法還可以免去傳統(tǒng)方法的許多繁雜的試湊等耗時勞動(設計瓶頸),因而減少設計時間,降低設計難度,避免了由于人工試湊設計常容易發(fā)生的錯誤。利用各種EDA工具,可自動的將一個可綜合的設計在給定的具體器件上進行門級實現(xiàn)。而且,用這種方法系統(tǒng)整體指標往往容易實現(xiàn),而傳統(tǒng)的方法則不然。這種方法其主要設計文件是用VHDL語言編寫的源程序,而不是電路原理圖,顯然傳統(tǒng)硬件電路設計最后形成的主要文件是電路原理圖,它與設計的器件和技術有關,不易設計文檔的復用。用VHDL語言設計系統(tǒng)硬件電路,主要設計文件是用VHDL語言編寫的源程序,以此作為歸納文件有很多好處:首先,資料量小,便于保存;其次是可繼承性好,即設計其它硬件電路時可以調(diào)用文件中的某些庫、進程和過程等描述某些局部硬件電路的程序;第三是閱讀方便,很容易在程序中看出某一硬件電路的工作原理和邏輯關系,而閱讀電路原理圖,推知其工作原理都需要較多的硬件知識和經(jīng)驗,而且看起來也不夠一目了然。VHDL還有一個重要的特點就是設計描述與器件無關(without referenec to specific hardware),顯然這是基于SSI、MSI等器件進行分析和設計無法做到的,設計者能專注其設計,而且在EDA綜合工具的配合下支持自頂向下的設計。

采用VHDL的方法,在實驗環(huán)境上也把基于硬件的實驗室改變成基于軟件的實驗室(Software-based Laboratory)即軟實驗臺,直接在VHDL仿真器中驗證實驗結果的正確性,根本克服了硬實驗臺的不足,易于實現(xiàn)實驗的開放性和網(wǎng)絡教學模式。

VHDL的方法是順應迅速發(fā)展的通訊技術、電子測量技術、自動化控制等技術的需要而發(fā)展起來的,它使硬件軟件化變?yōu)楝F(xiàn)實,使大規(guī)模和超大規(guī)模集成電路的設計向標準化、自動化的方向邁進了一大步。無疑,傳統(tǒng)的設計方法已經(jīng)遠遠落后,國內(nèi)電子行業(yè)已逐漸將VHDL硬件描述語言應用于電子系統(tǒng)設計中。為了避免我們的教學內(nèi)容與電子技術發(fā)展脫節(jié),增強人才的競爭能力,適應市場需要,將VHDL硬件描述語言引入數(shù)字邏輯的教學和實驗中,逐步對舊的教學模式和教學內(nèi)容加以改革,勢在必行,也是時代的要求和科技發(fā)展的必然結果。

3 舉例說明采用VHDL方法的風格和特點

VHDL語言是目前廣泛流行的硬件描述語言之一,它起源于美國國防部超高速集成電路計劃,計劃公布后受到業(yè)界的普遍歡迎。1987年12月被IEEE正式批準為標準的硬件描述語言,并于1993年公布了修改后的IEEE最新標準。VHDL支持結構化的開發(fā)設計,因此一個大型的數(shù)字系統(tǒng)可以分成較小的子系統(tǒng),許多人可在不同的子系統(tǒng)中同時進行開發(fā)工作。VHDL是通過元件例化語句來實現(xiàn)這一功能的。和其它高級語言一樣,VHDL是一種強類型語言,這使設計中的許多錯誤易于發(fā)現(xiàn)。VHDL允許設計者在不同的抽象層次里對系統(tǒng)進行行為描述及結構描述。VHDL有三種主要的建模描述風格:

算法描述(Algorithmic):即用順序語句來描述輸入輸出對應關系的算法,這種描述方式最初往往與實現(xiàn)硬件無關。

數(shù)據(jù)流描述(Dataflow):即用一組并行語句來描述數(shù)據(jù)在寄存器之間流動的建模方式。這種方式與實際硬件實際存在某種對應關系。

結構描述風格(Structural):這是一種與硬件結構最近的描述方式,它通過文件的例化語句來實現(xiàn)。

下面用一個實例來說明采用VHDL語言設計一個四位可控的Johnson計數(shù)器,從中可以領略一下采用VHDL方法的風格和特點,此例所反映的設計過程也是筆者所指的軟實驗臺所包含的具體內(nèi)容。設計模塊端口信號有:LEPT,左移控制;RIGHT,右移控制;STOP,停止計數(shù)控制;CLK,時鐘輸入端,Q3-Q0,計數(shù)器輸出端。設計采用VHDL輸入方式。該設計的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的設計代碼可見:VHDL的設計文檔由三大部分組成,即庫的聲明,端口說明和結構體設計描述。其中端口說明清晰的反映了所設計器件的輸入輸出性質(zhì),在結構體設計描述中也清楚的描述了器件所完成的邏輯功能。這是傳統(tǒng)的采用SSI,MSI等標準規(guī)格器件設計所沒有的優(yōu)點。

圖1 設計實例功能仿真圖

用VHDL仿真器驗證設計的正確性。參見圖1:設計實例功能仿真圖。

vhdl語言范文6

(重慶師范大學涉外商貿(mào)學院,中國 重慶 401520)

【摘 要】隨著計算機技術的飛速發(fā)展,EDA技術也有了巨大的發(fā)展,被廣泛應用于電子、通信、醫(yī)學、軍事等各個領域。本文介紹了基于VHDL硬件描述語言設計彩燈控制器的思維與技巧,在MAX+plusⅡ開發(fā)工具軟件中進行源文件的編輯、邏輯綜合、適配、仿真及編程下載。仿真和驗證的結果表明,該設計方法切實可行,該判決器具有一定的實際應用性。

關鍵詞 EDA; VHDL;彩燈控制器;MAX+plusⅡ

基金項目:重慶師范大學涉外商貿(mào)學院校級科研項目(KY2014008)。

作者簡介:周婷(1988—),重慶合川人,碩士研究生。

0 引言

電子設計自動化(EDA)技術就是依賴功能強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言VHDL為系統(tǒng)邏輯描述手段完成的設計文件,自動地完成邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能[1]。由美國國防部主持開發(fā)的VHDL語言是一種可用于數(shù)字電路描述和綜合的高級語言[2],如果結合VHDL語言仿真電路進行仿真和驗證,可以盡早發(fā)現(xiàn)電路設計中的錯誤,從而縮短開發(fā)的周期,降低開發(fā)成本,提高系統(tǒng)的設計效率。

VHDL語言是目前應用最廣泛的硬件描述語言之一。它是一種人和機器都能理解的高級語言,與具體的硬件電路沒有關系,具有較高的易讀性。它支持層次化結構設計,從系統(tǒng)整體要求出發(fā),從上至下逐層設計直到最終生成器件,完成電路系統(tǒng)。一個完整的VHDL程序包括有庫、包集合、實體、結構體,另外還有配置塊[3]。它的最大特點是將一項工程設計分成了內(nèi)部和外部,工程可以是目標系統(tǒng)、電路模塊甚至一個元件。其中外部是系統(tǒng)的端口;內(nèi)部則是不可視部分,其功能用程序設計好后可直接調(diào)用。

1 彩燈控制器的功能分析與設計

彩燈在生活中經(jīng)常能夠看到,并且給我們的生活增添了許多色彩。尤其在節(jié)假日,不僅閃爍著美麗耀眼的光芒,還能夠烘托出節(jié)日的氣氛。本文采用EDA技術,使用VHDL語言實現(xiàn)彩燈的控制。

在美國ALTERA公司的MAX+PLUSⅡ平臺上,使用VHDL硬件描述語言實現(xiàn)的彩燈控制電路的設計如下:在電路中以1代表燈亮,以0代表燈滅,由0、1按不同的規(guī)律組合代表不同的燈光圖案,同時使其選擇不同的頻率,從而實現(xiàn)多種圖案多種頻率的花樣功能顯示。彩燈控制器的元件,Y[15..0]是彩燈控制器的輸出端。reset是彩燈控制器的復位信號輸入端,當復位信號reset=‘1’時,彩燈狀態(tài)會和s0相同;否則,當有時鐘信號來臨時,會根據(jù)程序設置顯示出彩燈的亮滅狀態(tài)。en是彩燈循環(huán)方式控制信號輸入端,當en=‘0’時,彩燈自左邊第一個燈和中間分別向右邊循環(huán)閃爍;當en=‘1’時,彩燈自右邊第一個燈和中間分別向左邊循環(huán)閃爍;否則,彩燈會呈現(xiàn)熄滅狀態(tài)。

2 彩燈控制器VHDL語言設計

十六路彩燈顯示系統(tǒng)控制器的主要VHDL語言程序代碼如下所示:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity colorlamp is

port(clk,reset,en:in std_logic;

y:out std_logic_vector(15 downto 0));

end;

architecture beha of colorlamp is

type states is (s0,s1,s2,s3,s4,s5,s6,s7);

signal st:states;

signal yn:std_logic_vector(15 downto 0);

begin

one:process(clk,reset)

begin

if reset=&acute;1&acute; then st <= s0;

elsif clk&acute;event and clk=&acute;1&acute; then

case st is

when s0 => st <= s1;

when s1 => st <= s2;

when s2 => st <= s3;

when s3 => st <= s4;

when s4 => st <= s5;

when s5 => st <= s6;

when s6 => st <= s7;

when s7 => st <= s0;

when others => st <= s0;

end case;

end if;

end process one;

two:process(st,en,clk)

begin

case st is

when s0 =>

if en=&acute;0&acute; then yn <= "1000000010000000";

elsif en=&acute;1&acute; then yn <= "1000000010000000";

else yn <= "0000000000000000";

end if;

when s1 =>

if en=&acute;0&acute; then yn <= "0100000001000000";

elsif en=&acute;1&acute; then yn <= "0000000100000001";

else yn<= "0000000000000000";

end if;

when s2 =>

if en=&acute;0&acute; then yn <= "0010000000100000";

elsif en=&acute;1&acute; then yn <= "0000001000000010";

else yn <= "0000000000000000";

end if;

when s3 =>

if en=&acute;0&acute; then yn <= "0001000000010000";

elsif en=&acute;1&acute; then yn<= "0000010000000100";

else yn<= "0000000000000000";

end if;

when s4 =>

if en=&acute;0&acute; then yn<= "0000100000001000";

elsif en=&acute;1&acute; then yn <="0000100000001000";

else yn <= "0000000000000000";

end if;

when s5 =>

if en=&acute;0&acute; then yn <= "0000010000000100";

elsif en=&acute;1&acute; then yn<= "0001000000010000";

else yn<= "0000000000000000";

end if;

when s6 =>

if en=&acute;0&acute; then yn <= "0000001000000010";

elsif en=&acute;1&acute; then yn<="0010000000100000";

else yn <= "0000000000000000";

end if;

when s7 =>

if en=&acute;0&acute; then yn <= "0000000100000001";

elsif en=&acute;1&acute; then yn<="0100000001000000";

else yn <= "0000000000000000";

end if;

when others => yn <= "0000000000000000";

end case ;

if clk&acute;event and clk=&acute;1&acute; then y<= yn ;

end if;

end process two;

end beha;

3 仿真結果

利用MAXPLLUS2的原理圖輸入,以原理圖的形式形成最后的十六路彩燈顯示系統(tǒng)器件并且進行仿真。圖1分別是彩燈自右邊第一個燈和中間分別向左邊循環(huán)閃爍,彩燈自左邊第一個燈和中間分別向右邊循環(huán)閃爍的仿真時序圖(如圖1)。

4 結束語

通過上述實驗可知,本設計是可行的。仿真正確后通過下載電纜下載到CPLD/FPGA芯片上即可。芯片可以重復使用無數(shù)次。只要擁有計算機,配上相應的軟件就可以隨心所欲的改變彩燈的方式,而且不受時間的限制。

參考文獻

[1]趙剛,編.EDA技術簡明教程[M].成都:四川大學出版社,2004.

[2]宋文好,等.數(shù)字電路的VHDL綜合技術[J].現(xiàn)代計算機,2001(111):22-25.

相關精選

主站蜘蛛池模板: 永顺县| 寿阳县| 启东市| 罗源县| 黄梅县| 唐山市| 阿荣旗| 庄河市| 安国市| 手机| 德钦县| 深水埗区| 军事| 阿巴嘎旗| 托克托县| 津南区| 阳城县| 阿尔山市| 长武县| 息烽县| 太康县| 公主岭市| 临城县| 博野县| 平果县| 上栗县| 苏尼特左旗| 浪卡子县| 德保县| 保亭| 布拖县| 连江县| 武定县| 宿松县| 镇沅| 广汉市| 富裕县| 大新县| 丰都县| 徐汇区| 贵州省|