bt 另类 专区 欧美 制服-brazzers欧美精品-blz在线成人免费视频-blacked黑人战小美女-亚洲欧美另类日本-亚洲欧美另类国产

vhdl語言范例6篇

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

vhdl語言

vhdl語言范文1

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

中圖分類號:TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號:1009-3044(2007)05-11351-02

1 引言

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

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

2 設(shè)計(jì)思路與系統(tǒng)結(jié)構(gòu)

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

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

(1)設(shè)計(jì)制作一個(gè)競賽搶答器,共設(shè)8個(gè)組別每組控制一個(gè)搶答開關(guān),分別為sl,s2,…,s8。

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

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

2.2 系統(tǒng)原理結(jié)構(gòu)框圖

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

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

圖1 8路搶答器控制系統(tǒng)結(jié)構(gòu)框圖

3 硬件設(shè)計(jì)

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

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

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

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

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

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

4 基于VHDL的設(shè)計(jì)

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

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

圖2 8路搶答器原理圖

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

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

4.1 VHDL實(shí)體設(shè)計(jì)

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

8路搶答器實(shí)體部分的VHDL代碼:

ENTITY barenqiangda IS

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

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

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

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

END barenqiangda;

4.2 VHDL構(gòu)造體設(shè)計(jì)

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

構(gòu)造體部分VHDL代碼:

4.3 芯片設(shè)置、編譯、管腳設(shè)置

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

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

4.4 仿真

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

圖3 邏輯功能仿真波形

4.5 下載實(shí)驗(yàn)

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

5 結(jié)束語

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

參考文獻(xiàn):

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

vhdl語言范文2

【關(guān)鍵詞】數(shù)字電路;VHDL;教學(xué)改革;設(shè)計(jì)方法

1.引言

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

2.VHDL語言及其特點(diǎn)

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

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

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

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

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

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

(6)VHDL對于設(shè)計(jì)的描述具有相對獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),最終實(shí)現(xiàn)的目標(biāo)器件設(shè)計(jì)。

3.VHDL語言較傳統(tǒng)設(shè)計(jì)方法的優(yōu)點(diǎn)

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

3.1 傳統(tǒng)設(shè)計(jì)方法

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

圖1 自底向上設(shè)計(jì)方法

表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ū)動(dòng)方程:

,,,

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

圖2 邏輯原理圖

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

圖3 自頂向下設(shè)計(jì)方法

3.2 VHDL設(shè)計(jì)方法

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

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

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Ⅱ軟件對上述程序進(jìn)行編譯、仿真,仿真結(jié)果如圖4所示,結(jié)果表明,該方案符合設(shè)計(jì)要求。

圖4 仿真結(jié)果

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

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

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

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

4.結(jié)束語

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

參考文獻(xiàn)

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

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

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

vhdl語言范文3

關(guān)鍵詞:VHDL;計(jì)費(fèi)器;QuartusⅡ;FPGA

中圖分類號:TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1006-8937(2013)29-0007-03

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

1 出租車計(jì)費(fèi)器的設(shè)計(jì)要求

1.1 能夠?qū)崿F(xiàn)計(jì)費(fèi)的功能

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

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

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

2 系統(tǒng)總體設(shè)計(jì)

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

3 各模塊具體設(shè)計(jì)

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

3.1 分頻模塊

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

3.2 計(jì)量模塊

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

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

3.3 控制模塊

控制模塊主要是根據(jù)兩個(gè)不同的輸入使能信號ent0和ent1,對兩個(gè)輸入脈沖13 Hz及15 Hz進(jìn)行選擇輸出,提供給計(jì)費(fèi)模塊計(jì)費(fèi)。ent0和ent1分別由計(jì)量模塊的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 計(jì)費(fèi)模塊

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

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

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

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

3.6 頂層設(shè)計(jì)

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

4 硬件測試

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

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

5 總 結(jié)

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

參考文獻(xiàn):

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

2 引進(jìn)VHDL語言的方法

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

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

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

3 舉例說明采用VHDL方法的風(fēng)格和特點(diǎn)

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

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

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

結(jié)構(gòu)描述風(fēng)格(Structural):這是一種與硬件結(jié)構(gòu)最近的描述方式,它通過文件的例化語句來實(shí)現(xiàn)。

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

圖1 設(shè)計(jì)實(shí)例功能仿真圖

用VHDL仿真器驗(yàn)證設(shè)計(jì)的正確性。參見圖1:設(shè)計(jì)實(shí)例功能仿真圖。

vhdl語言范文6

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

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

關(guān)鍵詞 EDA; VHDL;彩燈控制器;MAX+plusⅡ

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

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

0 引言

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

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

1 彩燈控制器的功能分析與設(shè)計(jì)

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

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

2 彩燈控制器VHDL語言設(shè)計(jì)

十六路彩燈顯示系統(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 仿真結(jié)果

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

4 結(jié)束語

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

參考文獻(xiàn)

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

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

相關(guān)精選

主站蜘蛛池模板: 欧美激情国产日韩精品一区18 | 一级毛片成人免费看a | 伊人久久亚洲综合天堂 | 国产日韩欧美亚洲综合在线 | 欧美综合视频 | 亚洲人成一区二区三区 | 国产91精品一区二区视色 | 国内精品线在线观看 | 国产亚洲一区二区精品 | 久久福利网 | 卡通动漫亚洲综合 | 亚洲一区二区三区中文字幕 | 欧美我不卡| 亚洲成色999久久网站 | 成人国产一区 | 久久久久久久99久久久毒国产 | 精品久久久久久综合网 | 亚洲欧美在线看 | 亚洲欧美专区 | 国产成人免费高清激情明星 | 欧美色图一区二区 | 三级中文字幕电影大全 | 国产一区二区三区视频 | 欧美 韩国 精品 另类 综合 | 高清在线一区二区 | 免费视频精品一区二区 | 日韩免费高清视频网站 | 伊人网影院 | 亚洲第一页中文字幕 | 国产一级视频在线观看 | 免费在线观看国产 | 国产精品久久国产精麻豆99网站 | 国产线视频精品免费观看视频 | 97伊人网| 在线观看国产精品入口 | 国产一级片免费观看 | 久久精品一区 | 欧美日韩国内 | 大香伊人久久 | 99国产视频 | 91久久精品国产91久久性色也 |