版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《電子系統(tǒng)設計自動化》課程設計報告</p><p> 學 院: 機電工程學院 </p><p> 題 目: 數(shù)字式競賽搶答器設計 </p><p> 課 程: 《電子系統(tǒng)設計自動化》課程設計 </p>
2、;<p> 專業(yè)班級: </p><p> 學生姓名: </p><p> 學 號: </p><p> 完成日期:2013年 11 月 27 日</p>
3、<p><b> 摘要: </b></p><p> EDA(Electronic Design Automation)電子設計自動化,就是以大規(guī)??删幊唐骷樵O計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,通過相關(guān)的軟件,自動完成用軟件方式設計的電子系統(tǒng)到硬件系統(tǒng),最終形成集成電子系統(tǒng)或?qū)S眉尚酒1敬螌嵙暲肣uartusII為設計軟件、VHDL為硬件描述語言,結(jié)合
4、所學的數(shù)字電路的知識設計一個數(shù)字式競賽搶答器,并對其功能進行詳細介紹。利用硬件描述語言VHDL對設計系統(tǒng)的各個子模塊進行邏輯描述,采用模塊化的設計思想完成頂層模塊的設計,通過軟件編譯、邏輯化簡、邏輯分割、邏輯綜合優(yōu)化、邏輯布線、邏輯仿真,最終將設計的軟件系統(tǒng)下載設計實驗系統(tǒng),對設計的系統(tǒng)進行硬件測試。</p><p> 關(guān)鍵字:EDA VHDL QuartusII 數(shù)字式競賽搶答器 </p>
5、<p><b> 目 錄</b></p><p> 一、課程設計的任務和基本要求……………………………………3</p><p> 1.設計目的……………………………………………………………4</p><p> 1.設計要求……………………………………………………………4</p><p> 二、總
6、體設計思想 ………………………………………………………4</p><p> 2.1設計基本原理…………………………………………………… 5</p><p> 2.2設計框圖……………………………………………………………5</p><p> 三、設計步驟和調(diào)試過程…………………………………………………5</p><p> 3.1總體設計
7、電路………………………………………………………5</p><p> 3.2 模塊設計與相應模塊……………………………………………6</p><p> 四、仿真及仿真結(jié)果分析…………………………………………………6</p><p> 4.1搶答鑒別模塊仿真……………………………………………………6</p><p> 4.2數(shù)據(jù)選擇模塊仿
8、真……………………………………………………6</p><p> 4.3報警模塊仿真…………………………………………………………7</p><p> 4.4譯碼模塊仿真…………………………………………………………7</p><p> 4.5頂層文件仿真…………………………………………………………9</p><p> 五、實驗調(diào)試結(jié)果……
9、……………………………………………………10</p><p> 六、心得體會……………………………………………………………10</p><p> 參考文獻…………………………………………………………10</p><p> 七、 附錄…………………………………………………………………11</p><p> 源程序………………………………
10、……………………………11</p><p> 一 、課程設計的任務和基本要求</p><p><b> 1.1 設計目的</b></p><p> (1) 通過課程設計使學生能熟練掌握一種EDA軟件(QUARTUSII)的使用方法,能熟練進行設計輸入、編譯、管腳分配、下載等過程,為以后進行工程實際問題的研究打下設計基礎(chǔ)。 </p&g
11、t;<p> (2) 通過課程設計使學生能利用EDA軟件(QUARTUSII)進行至少一 個電子技術(shù)綜合問題的設計,設計輸入可采用圖形輸入法或VHDL硬件描述語言輸入法。 </p><p> ?。?) 通過課程設計使學生初步具有分析、尋找和排除電子電路中常見 故障的能力。</p><p><b> 1.2基本要求:</b></p>&l
12、t;p> 1、設計一個可容納6組參賽的數(shù)字式搶答器,每組設一個按鈕,供搶答使用。</p><p> 2、搶答器具有第一信號鑒別和鎖存功能,使除第一搶答者外的按鈕不起作用。</p><p> 3、設置一個主持人“復位”按鈕。</p><p> 4、主持人復位后,開始搶答,第一信號鑒別鎖存電路得到信號后,有指示燈顯示搶答組別,揚聲器發(fā)出2-3秒的音響。&l
13、t;/p><p> 5、設置一個計分電路,每組開始預置100分,由主持人記分,答對一次加10分,答錯一次減10分。</p><p><b> 二、總體設計思想</b></p><p><b> 2.1設計基本原理</b></p><p> 本設計為六路智能搶答器,所以這種搶答器要求有六路不同組別
14、的搶答輸入信號,并能識別最先搶答的信號,直觀地通過數(shù)顯和蜂鳴等方式顯示出組別;對回答問題所用的時間進行計時、顯示、超時報警、預置答題時間,同時該系統(tǒng)還應有復位、倒計時啟動功能。</p><p> 搶答過程:主持人按下系統(tǒng)復位鍵(RST),系統(tǒng)進入搶答狀態(tài),計時模塊和計分模塊輸出初始信號給數(shù)碼顯示模塊并顯示出初始值。當某參賽組搶先將搶答鍵按下時,系統(tǒng)將其余三路搶答信號封鎖,同時揚聲器發(fā)出聲音提示,組別顯示模塊送出
15、信號給數(shù)碼顯示模塊,從而顯示出該搶答成功組臺號,并一直保持到下一輪主持人將系統(tǒng)清零為止。主持人對搶答結(jié)果進行確認,隨后,計時模塊送出倒計時計數(shù)允許信號,開始回答問題,計時顯示器則從初始值開始以計時,在規(guī)定的時間內(nèi)根據(jù)答題的正誤來確定加分或減分,并通過數(shù)碼顯示模塊將成績顯示出來。計時至0時,停止計時,揚聲器發(fā)出超時報警信號,以中止未回答完問題。當主持人給出倒計時停止信號時,揚聲器停止鳴叫。若參賽者在規(guī)定時間內(nèi)回答完為題,主持人可給出倒計時
16、計數(shù)停止信號,以免揚聲器鳴叫。主持人按下復位鍵,即RST為高電平有效狀態(tài),清除前一次的搶答組別,又可開始新的一輪的搶答。</p><p> 此搶答器的設計中采用自頂向下的設計思路,運用VHDL硬件描述語言對各個模塊進行層次化、系統(tǒng)化的描述,并且先設計一個頂層文件,再把各個模塊連接起來。</p><p><b> 2.2設計框圖</b></p><
17、;p><b> 主電</b></p><p> 三、設計步驟和調(diào)試過程</p><p><b> 3.1總體設計電路</b></p><p> 3.2模塊設計和相應模塊</p><p> 將該任務分成幾個模塊進行設計,分別為:搶答器鑒別模塊、搶答器記分模塊、譯碼模塊、數(shù)選模塊、報警模
18、塊,最后是撰寫頂層文件。</p><p><b> 搶答器鑒別模塊:</b></p><p><b> 搶答鑒別模塊圖</b></p><p> 在這個模塊中主要實現(xiàn)搶答過程中的搶答功能,并能對超前搶答進行警告,還能記錄無論是正常搶答還是超前搶答者的臺號,并且能實現(xiàn)當有一路搶答按鍵按下時,該路搶答信號將其余過濾搶答封
19、鎖的功能。其中有六個搶答信號s0、s1、s2、s3、s4、s5;搶答使能信號s;搶答狀態(tài)顯示信號states;搶答與警報時鐘信號clk2;系統(tǒng)復位信號rst;警報信號tmp。</p><p><b> 數(shù)據(jù)選擇模塊:</b></p><p><b> 數(shù)據(jù)選擇模塊圖</b></p><p> 在這個模塊中主要實現(xiàn)搶答
20、過程中的數(shù)據(jù)輸入功能,輸入信號a[3..0]、b[3..0]、c[3..0];計數(shù)輸出信號s;數(shù)據(jù)輸出信號y;計數(shù)脈沖clk2,實現(xiàn)a、b、c按脈沖輪流選通,在數(shù)碼管上顯示。</p><p><b> 報警模塊:</b></p><p><b> 報警模塊圖</b></p><p> 在這個模塊中主要實現(xiàn)搶答過程中的
21、報警功能,當主持人按下控制鍵,有限時間內(nèi)有人搶答,有效電平輸入信號i;狀態(tài)輸出信號q;計數(shù)脈沖clk2。</p><p><b> 譯碼模塊:</b></p><p><b> 譯碼模塊圖</b></p><p> 在這個模塊中主要實現(xiàn)搶答過程中將BCD碼轉(zhuǎn)換成7段的功能。</p><p>&
22、lt;b> 譯碼顯示電路圖</b></p><p><b> 頂層文件:</b></p><p> 在這個模塊中是對前面模塊的綜合編寫的頂層文件。</p><p> 四、仿真及仿真結(jié)果分析</p><p> 4.1搶答鑒別模塊仿真圖</p><p> 4.2數(shù)據(jù)選擇模
23、塊仿真圖</p><p> 4.3報警模塊仿真圖</p><p> 4.4譯碼模塊仿真圖</p><p> 4.5頂層文件仿真圖</p><p> CLK接高電平,s0,s1,s2,sl3,s4,s5六個選手接低電平,鑒別器的輸出接指示燈,譯碼器的輸出接LED數(shù)碼管,計分器的輸出接顯示譯碼器。當主持人按下使能端時,六個選手同時搶答。如
24、圖所示,若s0搶答,即為高電平時,s0燈亮,若回答正確,對其加分,即當時鐘出現(xiàn)上升沿時就進行加一或者減一的操作。</p><p><b> 五、硬件調(diào)試</b></p><p> 按下rst鍵清零,按下s鍵,觀察數(shù)碼管是否開始倒計時,揚聲器是否發(fā)出報警聲,按下s0,觀察數(shù)碼管是否顯示1和搶答的時間,再按s1,s2,s3,s4.s5均不改變顯示,按下rst鍵,觀察是
25、否清零,再按s鍵,不按別的,直到計時時間到,觀察是否顯示00,揚聲器是否發(fā)出報警</p><p> 第一個按下鍵的小組,搶答信號判定電路LOCK通過緩沖輸出信號的反饋將本參賽組搶先按下按鍵的信號鎖存,并且以異步清零的方式將其他參賽組的鎖存器清零,組別顯示、計時和計分會保存到主持人對系統(tǒng)進行清零操作時為止。當INI=1時系統(tǒng)復位,使組別顯示信號G=0000,各組的指示燈信號S0=0,S1=0,S2=0,S3=0,
26、S4=0,S5=0;當INI=0,即低電平有效,使其進入搶答鑒別狀態(tài),到CLK的上升沿到來時,以A組搶答成功為例,當輸入信號為A=1,B=0,C=0,D=0,輸出信號G=1000,A1=1,即為鑒別出A組搶答成功,同時屏蔽其他組的輸入信號,以免發(fā)生錯誤。</p><p><b> 六、心得體會</b></p><p> 通過這次設計,進一步加深了對EDA的了解,讓
27、我對它有了更加濃厚的興趣。特別是當每一個子模塊編寫調(diào)試成功時,心里特別的開心。但在整個設計過程中遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯誤,在細心的檢查以及同學的耐心幫助下,終于找出了錯誤和警告,排除了困難。</p><p> 此次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能提高自己的實際動手能力和獨
28、立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。以后的學習中一定會注重知識的掌握并且加強鍛煉自己的動手能力,只有這樣才能學到更多的知識。</p><p><b> 參考文獻</b></p><p> [1] 潘松著.ED
29、A技術(shù)實用教程(第二版). 北京:科學出版社,2005.</p><p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.</p><p> [4] 崔建明主編,電工電子EDA仿真技術(shù) 北京:高等教育出版社,2004</p><
30、p> [5] 彭介華.《電子技術(shù)課程設計與指導》 高等教育出版 1997年</p><p><b> 七、附錄</b></p><p><b> VHDL源程序</b></p><p> library ieee;--—搶答鑒別模塊</p><p> use ieee.std_log
31、ic_1164.all;——定義庫文件</p><p> use ieee.std_logic_unsigned.all;</p><p> entity qdjb is</p><p> port(rst,clk2:in std_logic;——定義輸入輸出端口,clk是端口名,in是端口類型,std_logic</p><p>
32、s0,s1,s2,s3,s4,s5:in std_logic;是指標準邏輯數(shù)據(jù)類型</p><p> states:buffer std_logic_vector(5 downto 0);</p><p> tmp:out std_logic);</p><p><b> end qdjb;</b></p><p>
33、; architecture one of qdjb is</p><p> signal st:std_logic_vector(5 downto 0);</p><p><b> begin</b></p><p> p1:process(s0,rst,s1,s2,s3,s4,s5,clk2)——敏感信號發(fā)生變化時啟動進程<
34、/p><p><b> begin</b></p><p> if rst='0' then </p><p> tmp<='0';st<="0000";</p><p> elsif clk2'event and clk2='1
35、9; then——時鐘上升沿脈沖</p><p> if (s0='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' or st(4)='1' or st(5)='1' ) then st(0)<='1';
36、</p><p><b> end if ;</b></p><p> if (s1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' or st(4)='1' or st(5)='1
37、39;) then st(1)<='1';</p><p><b> end if ;</b></p><p> if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' or st
38、(4)='1' or st(5)='1') then st(2)<='1';</p><p><b> end if ;</b></p><p> if (s3='1' or st(3)='1')and not( st(0)='1' or st(1)='
39、1' or st(2)='1' or st(4)='1' or st(5)='1') then st(3)<='1';</p><p> if (s4='1' or st(4)='1')and not( st(0)='1' or st(1)='1' or st(2)=&
40、#39;1' or st(3)='1' or st(5)='1') then st(4)<='1';</p><p><b> end if ;</b></p><p> if (s5='1' or st(5)='1')and not( st(0)='1'
41、; or st(1)='1' or st(2)='1' or st(3)='1' or st(5)='1') then st(5)<='1';</p><p><b> end if ;</b></p><p> tmp<=s0 or s1 or s2 or s3 or
42、s4 or s5;——任何一組搶答成功發(fā)出報警信號</p><p><b> end if ;</b></p><p> end process p1;</p><p> p2:process(states(0),states(1),states(2),states(3) ,states(4),states(5))</p>
43、<p><b> begin</b></p><p> if (st="0000") then states<="0000"; </p><p> elsif (st<="0001") then states<="0001";——狀態(tài)顯示信號<
44、;/p><p> elsif (st<="0010") then states<="0010"; </p><p> elsif (st<="0100") then states<="0011";</p><p> elsif (st<="0
45、100") then states<="0100"; </p><p> elsif (st<="0101") then states<="0101"; </p><p> elsif (st<="1000") then states<="0110&qu
46、ot;; </p><p><b> end if; </b></p><p> end process p2;</p><p><b> end one;</b></p><p> library ieee;--數(shù)據(jù)選擇模塊</p><p> use ie
47、ee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity sjxz is</p><p> port (a,b,c: in std_logic_ve
48、ctor(3 downto 0);</p><p> clk2,rst: in std_logic;</p><p> s: out std_logic_vector(1 downto 0);——計數(shù)輸出信號</p><p> y: out std_logic_vector(3 downto 0) );——數(shù)據(jù)輸出信號</p><p&g
49、t;<b> end sjxz;</b></p><p> architecture body_chooser of sjxz is</p><p> signal count: std_logic_vector (1 downto 0);</p><p><b> begin</b></p>&l
50、t;p><b> s<=count;</b></p><p> process(clk2,rst)</p><p><b> begin</b></p><p> if(rst='0')then count<="00";——復位</p><p
51、> elsif(clk2'event and clk2='1')then ——計數(shù)脈沖上升沿來時狀態(tài)改變</p><p> if(count>="10")then </p><p> count<="00"; </p><p> else count<=count+1;&
52、lt;/p><p><b> end if;</b></p><p><b> end if;</b></p><p> case count is</p><p> when "00"=>y<=a;</p><p> when &quo
53、t;01"=>y<=b;</p><p> when "10"=>y<=c;</p><p> when others=>null;</p><p> end case; </p><p> end process;</p><p> end bod
54、y_chooser</p><p> library ieee;--報警模塊</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity alarm is</p><p> Po
55、rt clk,i:instd_logic;</p><p> q:out std_logic);</p><p> End alarm;</p><p> archiyecture behave of alarm is</p><p> signal warn:std_logic;</p><p> sign
56、al n:Iinteger range 0 to 20;</p><p><b> begin</b></p><p><b> q<= warn;</b></p><p> process(clk)</p><p><b> begin</b></p>
57、;<p> if clk'event andclk='1' then</p><p> if i='0' then </p><p> warn<='0';</p><p> elsif(i='1'and n<=19)then</p><p&
58、gt; warn<=not warn;</p><p><b> n<=n+1;</b></p><p><b> else</b></p><p> warn <='0';</p><p><b> end if;</b></
59、p><p><b> end if;</b></p><p> End process;</p><p> End behave;</p><p> Library ieee;--譯碼模塊</p><p> Use ieee.std_logic_1164.all;</p>&l
60、t;p> Use ieee.std_logic_unsigned.all;</p><p> Entity ymq is</p><p> port(ain4: in std_logic_vector3 downto 0);</p><p> dout7: out std_logic_vector(6 downto 0));</p>&
61、lt;p><b> End ymq;</b></p><p> architecture art of ymq is</p><p><b> begin</b></p><p> process(ain4)</p><p><b> begin</b><
62、/p><p> Case ain4 is</p><p> When "0000"=>dout7<="1111110"; --0</p><p> When "0001"=>dout7<="0110000";
63、--1</p><p> When "0010"=>dout7<="1101101"; --2</p><p> When "0011"=>dout7<="1111001"; --3</p><p> Wh
64、en "0100"=>dout7<="0110011"; --4</p><p> When "0101"=>dout7<="1011011"; --5</p><p> When "0110"=>dout
65、7<="1011111"; --6</p><p> When "0111"=>dout7<="1110000"; --7</p><p> When "1000"=>dout7<="1111111";
66、 --8</p><p> When "1001"=>dout7<="1111011"; --9</p><p> When others=>dout7<="0000000";</p><p><b> End case
67、;</b></p><p> End process;</p><p> End architecture art;</p><p> library ieee;--頂層模塊</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_l
68、ogic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity qiangdaqi is</p><p> port(clk,clk2,s,s0,s1,s2,s3,s4,s5,stop,rst:in std_logic;</p><p> n,k,q_
69、out:out std_logic;</p><p> m:out std_logic_vector(1 downto 0);</p><p> a,b,c,d,e,f,g:out std_logic);</p><p> end qiangdaqi;</p><p> architecture bhv of qiangdaqi is
70、</p><p> component qdjb is</p><p> port(clk2,rst:in std_logic;</p><p> s0,s1,s2,s3,s4,s5:in std_logic; </p><p> tmp:out std_logic;</p><p> states:ou
71、t std_logic_vector(5 downto 0));</p><p> end component;</p><p> component js is</p><p> port(clk,rst,s,stop:in std_logic;</p><p> warn:out std_logic;</p><
72、;p> ta,tb:buffer std_logic_vector(5 downto 0));</p><p> end component;</p><p> component sjxz is</p><p> port(clk2,rst:in std_logic;</p><p> s:out std_logic_vec
73、tor(1 downto 0);</p><p> a,b,c:in std_logic_vector(3 downto 0);</p><p> y:out std_logic_vector(3 downto 0));</p><p> end component;</p><p> component ymq is</p&g
74、t;<p> port(ain4: in std_logic_vector (3 downto 0);</p><p> dout7: out std_logic_vector (6 downto 0));</p><p> end component;</p><p> component alarm is</p><p&
75、gt; port(clk,i:in std_logic;</p><p> q:out std_logic);</p><p> end component;</p><p> signal states_out,ta_out,tb_out,y_out:std_logic_vector(3 downto 0);</p><p> s
76、ignal ledout:std_logic_vector(6 downto 0);</p><p> signal w:std_logic;</p><p> Begin——元件例化進程</p><p> a<=ledout(6);b<=ledout(5);c<=ledout(4);d<=ledout(3);e<=ledout(
77、2);f<=ledout(1);g<=ledout(0);</p><p> u1:qdjb port map(clk2,rst,s0,s1,s2,s3,tmp=>k,states=>states_out);</p><p> u2:js port map(clk,rst,s,stop,warn=>n,ta=>ta_out,tb=>tb_out
78、);</p><p> u3:sjxzportmap(clk2=>clk2,rst=>rst,s=>m,a=>states_out,b=>ta_out,c=>tb_out,y=>y_out);</p><p> u4:ymq port map(ain4=>y_out,DOUT7=>ledout);</p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設計--數(shù)字式競賽搶答器設計
- 數(shù)字式搶答器課程設計--數(shù)字式競賽搶答器
- 數(shù)字式競賽搶答器課程設計
- 數(shù)電課程設計---數(shù)字式競賽搶答器
- 數(shù)字邏輯課程設計報告--數(shù)字式競賽搶答器
- eda課程設計---競賽搶答器
- eda課程設計---競賽搶答器
- eda數(shù)字搶答器課程設計
- 數(shù)字式競賽搶答器 數(shù)電課程設計報告
- 數(shù)字式搶答器課程設計報告
- 數(shù)字邏輯課程設計--數(shù)字式搶答器
- 數(shù)電課程設計報告---數(shù)字式競賽搶答器
- 微機原理課程設計報告--數(shù)字式競賽搶答器
- eda數(shù)字搶答器課程設計
- eda課程設計報告--eda數(shù)字搶答器
- 微機課程設計--數(shù)字式八位競賽搶答器
- eda課程設計-搶答器
- eda課程設計---搶答器
- 電子課程設計——數(shù)字式搶答器的設計與實現(xiàn)
- eda課程設計報告--智力競賽搶答器
評論
0/150
提交評論