基于VHDL语言的多人表决器的设计
基于VHDL語言的多人表決器設計
實驗原理
? 用七個開關作為表決器的7個輸入變量,輸入變量為邏輯“1”時表示表決者“贊同”;輸入變量為邏輯“0”時,表示表決者“不贊同”。輸出邏輯“1”時,表示表決“通過”;輸出邏輯“0”時,表示表決“不通過”。當表決器的七個輸入變量中有4個以上(含4個)為“1”時,則表決器輸出為“1”;否則為“0”。
? 七人表決器設計方案很多,比如用多個全加器采用組合電路實現。用VHDL語言設計七人表決器時,也有多種選擇。我們可以用結構描述的方式用多個全加器來實現電路,也可以用行為描述。采用行為描述時,可用一變量來表示選舉通過的總人數。當選舉人大于或等于4時為通過,綠燈亮;反之不通過時,黃燈亮。描述時,只須檢查每一個輸入的狀態(通過為“1”,不通過為“0”),并將這些狀態值相加,判斷狀態值和即可選擇輸出。
設計思路:
本設計采用多個全加器實現組合電路,用七個開關作為表決器的七個輸入變量,邏輯“1”時表示“贊同”,邏輯“0”時表示“不贊同”,用發光二極管作為輸出指令,輸出邏輯“1”表示“通過”;輸出邏輯“0”時表示“不通過”。當表決器的七個輸入變量中的4個以上(包含4個)為“1”時,則表決器輸出為“1” ,綠燈亮;否則為“0”綠燈不亮。
軟件說明:ModelSimSetup-13.1.0.162,QuartusSetup-13.1.0.162。
建立工程:
第一步:打開Quartus軟件。
第二步:點擊New Project Wizard -> next.
第三步:選擇工程文件的存放位置,輸入工程名 -> next -> next。
第四步:在family欄選擇芯片型號-Cyclone IV E,在Name欄選擇EP4CE115F29C7,選擇完之后點擊next。(如果不進行硬件調試時,此處默認即可)
第五步:檢查工程有沒有建錯,點擊完成。如下圖:
程序設計:
表決器頂層文件設計:
library ieee; use ieee.std_logic_1164.all; entity bjq is port( a:in std_logic_vector(6 downto 0); --7個人num:buffer integer range 0 to 7; --表決通過人數 co:out std_logic); --是否通過信號 end bjq; architecture art of bjq isBeginprocess(a)variable b:integer range 0 to 7; --定義變量b beginb:=0;for n in 0 to 6 loopif a(n)='1' then b:=b+1; --統計通過人數end if;end loop;num<=b;if(b>=4)then co<='1';else co<='0';end if; end process; end art;文件仿真(這里采用modelsim仿真波形):
2.打開測試文件。(右鍵點擊添加端口,對輸入信號初始化,賦值。)
3.仿真結果:
邏輯電路圖:
顯示編譯成功后,選擇菜單欄 Tools –>Netlist Viewers –>RTL Viewer 顯示邏輯電路圖
總結
以上是生活随笔為你收集整理的基于VHDL语言的多人表决器的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外贸业务员常用询盘报价邮件模板
- 下一篇: 深度总结:软件设计七大原则