




已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
EDA技術(shù)綜合設計課程設計報告報 告 題 目: 基于VHDL的四路搶答器 作者所在系部: 電子工程系 作者所在專業(yè): 自動化 作者所在班級: B07221 作 者 姓 名 : XXX 指導教師姓名: XXX 完 成 時 間 : 2009-11-29 內(nèi) 容 摘 要搶答器是為智力競賽參賽者答題時進行搶答而設計的一種優(yōu)先判決器電路,競賽者可以分為若干組,搶答時各組對主持人提出的問題要在最短的時間內(nèi)做出判斷,并按下?lián)尨鸢存I回答問題。當?shù)谝粋€人按下按鍵后,則在顯示器上顯示該組的號碼,同時電路將其他各組按鍵封鎖,使其不起作用。若搶答時間內(nèi)無人搶答,警報器發(fā)出警報?;卮鹜陠栴}后,由主持人將所有按鍵恢復,重新開始下一輪搶答。因此要完成搶答器的邏輯功能,該電路至少應包括搶答鑒別模塊、分頻器、計時模塊、選擇控制和報警器組成。關鍵詞:搶答鑒別 封鎖 計時 報警目 錄一 概 述 5二 方案設計與論證5三 單元電路設計5 3.1. 搶答鑒別模塊的設計 53.2 計時模塊的設計 7 3.3 數(shù)據(jù)選擇模塊的設計 83.4 報警模塊的設計 103.5 譯碼器模塊的設計 123.6 分頻模塊 123.7 搶答器頂層文件的設計 133.8 主電路連線圖 153.9 芯片引腳圖 16四 器件編程與下載16五 性能測試與分析16六 實驗設備16七 心得體會17八 參考文獻17程序設計流程圖層次化設計圖形輸入文本輸入建立項目文件設計器件增益邏輯正確仿真分析引腳分配重新調(diào)整設計正確生成下載文件下載并驗證NONOYESYES設計輸入設計生成設計實現(xiàn)硬件下載一、概述 搶答器的邏輯結(jié)構(gòu)較簡單,它主要由搶答鑒別模塊、分頻器、計時模塊、選擇控制和報警器組成。在整個搶答器中最關鍵的是如何實現(xiàn)搶答封鎖,在控制鍵按下的同時計數(shù)器倒計時顯示有效剩余時間。除此之外,整個搶答器還需有一個使能信號和一個歸零信號,以便搶答器能實現(xiàn)公平搶答和停止。搶答器共有3個輸出顯示,選手代號、計數(shù)器的個位和十位,他們輸出全都為BCD碼輸出,這樣便于和顯示譯碼器連接。當主持人按下控制鍵、選手按下?lián)尨疰I或倒計時到時蜂鳴器短暫響起。二、方案設計與論證將該任務分成七個模塊進行設計,分別為:搶答器鑒別模塊、搶答器計時模塊、搶答器記分模塊、分頻模塊、譯碼模塊、數(shù)選模塊、報警模塊,最后是撰寫頂層文件。1、 搶答器鑒別模塊:在這個模塊中主要實現(xiàn)搶答過程中的搶答功能,并能對超前搶答進行警告,還能記錄無論是正常搶答還是朝前搶答者的臺號,并且能實現(xiàn)當有一路搶答按鍵按下時,該路搶答信號將其余個綠搶答封鎖的功能。其中有四個搶答信號s0、s1、s2、s3;搶答使能信號s;搶答狀態(tài)顯示信號states;搶答與警報時鐘信號clk2;系統(tǒng)復位信號rst;警報信號tmp。2、 搶答器計時模塊:在這個模塊中主要實現(xiàn)搶答過程中的計時功能,在有搶答開始后進行30秒的倒計時,并且在30秒倒計時后無人搶答顯示超時并報警。其中有搶答時鐘信號clk2;系統(tǒng)復位信號rst;搶答使能信號s;搶答狀態(tài)顯示信號states;無人搶答警報信號warn;計時中止信號stop;計時十位和個位信號tb,ta。3、 數(shù)據(jù)選擇模塊:在這個模塊中主要實現(xiàn)搶答過程中的數(shù)據(jù)輸入功能,輸入信號a3.0、b3.0、c3.0;計數(shù)輸出信號s;數(shù)據(jù)輸出信號y;計數(shù)脈沖clk2,實現(xiàn)a、b、c按脈沖輪流選通,在數(shù)碼管上顯示。4、 報警模塊: 在這個模塊中主要實現(xiàn)搶答過程中的報警功能,當主持人按下控制鍵,有限時間內(nèi) 人搶答或是計數(shù)到時蜂鳴器開始報警,有效電平輸入信號i;狀態(tài)輸出信號q;計數(shù)脈沖clk2。5、 譯碼模塊:在這個模塊中主要實現(xiàn)搶答過程中將BCD碼轉(zhuǎn)換成7段的功能。6、 分頻模塊:在這個模塊中主要實現(xiàn)搶答過程中實現(xiàn)輸出雙脈沖的功能。7、 頂層文件:在這個模塊中是對前七個模塊的綜合編寫的頂層文件。三、單元電路設計(一)搶答鑒別模塊 1、VHDL源程序library ieee;-搶答鑒別模塊use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb is port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0);tmp:out std_logic);end qdjb;architecture one of qdjb issignal st:std_logic_vector(3 downto 0);beginp1:process(s0,rst,s1,s2,s3,clk2) begin if rst=0 then tmp=0;st=0000; elsif clk2event and clk2=1 then if (s0=1 or st(0)=1)and not( st(1)=1 or st(2)=1 or st(3)=1 ) then st(0)=1; end if ; if (s1=1 or st(1)=1)and not( st(0)=1 or st(2)=1 or st(3)=1 ) then st(1)=1; end if ; if (s2=1 or st(2)=1)and not( st(0)=1 or st(1)=1 or st(3)=1 ) then st(2)=1; end if ; if (s3=1 or st(3)=1)and not( st(0)=1 or st(1)=1 or st(2)=1 ) then st(3)=1; end if ;tmp=s0 or s1 or s2 or s3;end if ;end process p1;p2:process(states(0),states(1),states(2),states(3) begin if (st=0000) then states=0000; elsif (st=0001) then states=0001;elsif (st=0010) then states=0010; elsif (st=0100) then states=0011;elsif (st=1000) then states=0100; end if; end process p2;end one;2、仿真圖:(二)計時模塊 1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js is port(clk,rst,s,stop:in std_logic; warn:out std_logic; ta,tb:buffer std_logic_vector(3 downto 0);end js;architecture one of js issignal co:std_logic;beginp1:process(clk,rst,s,stop,ta) begin if rst=0 or stop=1 then ta=0000; elsif clkevent and clk=1 then co=0; if s=1 then if ta=0000 then ta=1001;co=1; else ta=ta-1; end if; end if; end if;end process p1;p2:process(co,rst,s,stop,tb) begin if rst=0 or stop=1 then tb=0010; elsif coevent and co=1 then if s=1 then if tb=0000 then tb=0011; else tb=tb-1; end if; end if; end if;end process p2;2、仿真圖(三)數(shù)據(jù)選擇模塊1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sjxz is port (a,b,c: in std_logic_vector(3 downto 0);clk2,rst: in std_logic; s: out std_logic_vector(1 downto 0); y: out std_logic_vector(3 downto 0) ); end sjxz;architecture body_chooser of sjxz is signal count: std_logic_vector (1 downto 0); begin s=count; process(clk2,rst) begin if(rst=0)then count=10)then count=00; else countyyynull; end case; end PROCESS; end body_chooser;2、仿真圖(四)報警模塊1、VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALARM ISPORT(CLK,I:IN STD_LOGIC; Q:OUT STD_LOGIC);END ALARM;ARCHITECTURE BEHAVE OF ALARM IS SIGNAL WARN:STD_LOGIC; SIGNAL N:INTEGER RANGE 0 TO 20;BEGIN Q= WARN; PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF I=0 THEN WARN =0; ELSIF(I=1AND N=19)THEN WARN =NOT WARN; N=N+1; ELSE WARN DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS;END ARCHITECTURE ART;2、仿真圖(六)分頻模塊1、VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clkdiv ISPORT(clk2 : IN STD_LOGIC;clk16 : OUT STD_LOGIC);END clkdiv;ARCHITECTURE rtl OF clkdiv ISSIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk2)BEGINIF (clk2event AND clk2=1) THENIF(count=1111) THENCount =0000;ELSECount = count +1;END IF ;END IF ;END PROCESS;PROCESS(clk2)BEGINIF (clk2event AND clk2=1) THENIF(count=1111) THENclk16 = 1;ELSEclk16 = 0;END IF ;END IF ;END PROCESS;END rtl;2、仿真圖(七)頂層文件1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity qiangdaqi is port(clk,clk2,s,s0,s1,s2,s3,stop,rst:in std_logic; n,k,q_out:out std_logic; m:out std_logic_vector(1 downto 0); a,b,c,d,e,f,g:out std_logic);end qiangdaqi;architecture bhv of qiangdaqi iscomponent qdjb is port(clk2,rst:in std_logic; s0,s1,s2,s3:in std_logic; tmp:out std_logic; states:out std_logic_vector(3 downto 0);end component;component js is port(clk,rst,s,stop:in std_logic; ring,warn:out std_logic; ta,tb:buffer std_logic_vector(3 downto 0);end component;component sjxz is port(clk2,rst:in std_logic; s:out std_logic_vector(1 downto 0); a,b,c:in std_logic_vector(3 downto 0); y:out std_logic_vector(3 downto 0);end component;component ymq is port(ain4: in std_logic_vector (3 downto 0); dout7: out std_logic_vector (6 downto 0);end component;component alarm is port(clk,i:in std_logic; q:out std_logic);end component;signal states_out,ta_out,tb_out,y_out:std_logic_vector(3 downto 0);signal ledout:std_logic_vector(6 downto 0);signal w:std_logic;begina=ledout(6);b=ledout(5);c=ledout(4);d=ledout(3);e=ledout(2);f=ledout(1);gk,states=states_out);u2:js port map(clk,rst,s,stop,warn=n,ta=ta_out,tb=tb_out);u3:sjxzportmap(clk2=clk2,rst=rst,a=states_out,b=ta_out,c=tb_out,s=m,y_out;u4:ymq port map(ain4=y_out,DOUT7=ledout);u5:alarm port map(clk2,i=s,q_out);end bhv;2、仿真圖(八)主電路連線圖(九)將程序下載到芯片F(xiàn)LEXEPF10LC84-4上,引腳圖如下四、器件編程與下載將編譯好的模塊程序下載到CPLD中(注:device選取要與硬件對應,否則會導致實驗失?。?,連線做硬件實驗。五、性能測試與分析按下rst鍵清零,按下s鍵,觀察數(shù)碼管是否開始倒計時,揚聲器是否發(fā)出報警聲,按下s0,觀察數(shù)碼管是否顯示1和搶答的時間,再按s1,s2.s3均不改變顯示,按下rst鍵,觀察是否清零,再按s鍵,不按別的,直到計時時間到,觀察是否顯示00,揚聲器是否發(fā)出報警。 六、實驗設備計算機,EL教學實驗箱七、心得體會通過這次對搶答器的設計與實踐,讓我了解了設計的程序,也讓我了解了關于搶答器的基本原理與設計理念,要設計一個電路總要先用仿真仿真成功之后才實際接線的。但是最后的成品卻不一定與仿真時完全一樣,因為,再實際接線中有著各種各樣的條件制約著。而且,在仿真中無法成功的電路接法,在實際中因為芯片本身的特性而能夠成功。所以,在設計時應考慮兩者的差異,從中找出最適合的設計方法。本實驗通過EDA軟件muxlus2的實現(xiàn),讓我對VHDL語
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 女性圈層活動方案
- 學校新春冬奧活動方案
- 學校春節(jié)走基層活動方案
- 娛樂創(chuàng)意活動方案
- 女員工經(jīng)驗交流活動方案
- 娘家人職工文化活動方案
- 孔橋小學端午節(jié)活動方案
- 婚戀派對活動方案
- 女閨蜜生日搞笑活動方案
- 學校教師支教活動方案
- 北京市通州區(qū)2024-2025學年四年級語文下學期期末試卷新人教版
- 廣東省珠海市金灣區(qū)2023-2024學年八年級下學期7月期末歷史試題
- 社會語言學視角下網(wǎng)絡流行用語研究
- 數(shù)據(jù)庫程序設計智慧樹知到期末考試答案章節(jié)答案2024年外交學院
- 中職數(shù)學單招一輪總復習《集合》復習課件
- 設計投標服務方案
- 外來醫(yī)療器械清洗消毒
- 內(nèi)科學(廣東藥科大學)智慧樹知到期末考試答案2024年
- 再回首混聲合唱譜
- 2023年11月南昌高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)人民檢察院招考4名聘用制檢察輔助人員筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
- 珍愛生命遠離溺水風險
評論
0/150
提交評論