智力競賽搶答器 說明書_第1頁
智力競賽搶答器 說明書_第2頁
智力競賽搶答器 說明書_第3頁
智力競賽搶答器 說明書_第4頁
智力競賽搶答器 說明書_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、唐 山 學 院 EDA技術 課 程 設 計 題 目 智力競賽搶答器 系 (部) 信息工程系 班 級 姓 名 學 號 指導教師 2015 年 6 月 15 日至 6 月 26 日 共 2 周2015年 6 月 25 日目 錄1 前言12 EDA技術介紹23 VHDL簡介33.1 硬件描述語言VHDL33.2 VHDL語言的特點34 Quartus II軟件簡介54.1軟件介紹54.2 Quartus II數字系統開發流程55 設計原理65.1設計思路65.2搶答鑒別模塊65.2.1 搶答電路的設計65.2.2仿真波形85.3計時模塊85.3.1計時模塊設計85.3.2仿真波形105.4蜂鳴器模塊

2、105.4.1蜂鳴器模塊設計105.4.2仿真波形115.5數碼管顯示模塊115.5.1數碼管顯示模塊的設計115.5.2仿真波形125.6動態顯示模塊125.6.1數碼管顯示模塊的設計125.7主原理圖145.8硬件測試156 總結17參考文獻18課程設計說明書1 前言我國科技迅速發展,而電子行業這個新興產業的發展更是日新月異,在很多行業和競爭場合都要求有公正的快速的裁決,例如體育競技、證券、股票交易,以及各種智力競賽等。在現代社會中智力競賽更是作為一種生動活潑的教育形式和方法來引起觀眾和參賽者的積極性。在各種各樣的競賽中,往往有多組的選手參加,為了競賽的公平,就要求人們能夠設計一種電路來滿

3、足需求。搶答器就是為智力競賽參賽者答題時進行搶答而設計的一種優先判決器電路。它給人們生活,工作等方面帶來極大地方便。現今,形式多樣、功能完備的搶答器已廣泛應用于電視臺、商業機構、學校有著、企事業單位及社會團體組織中,它為各種知識競賽增添了刺激性、娛樂性,在一定程度上豐富了人們的業余生活。本設計介紹了一種用EDA技術來設計四路搶答器的方法。該搶答器為全數字集成電路設計,具有分組數多、分辨率高等優點。該搶答器除具有基本的搶答功能外,還具有優先選擇、定時計時及復位等功能,具有很強的實用性與可行性。2 EDA技術介紹EDA是電子設計自動化(Electronic Design Automation)縮寫

4、。EDA技術是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產品的自動設計。 利用EDA工具,電子設計師可以從概念、算法、協議等開始設計電子系統,大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程的計算機上自動處理完成。 現在對EDA的概念或范疇用得很寬。包括在機械、電子、通信、航空航天、化工、礦產、生物、醫學、軍事等各個領域,都有EDA的應用。目前EDA 技術已在各大公司、企事業單位和科研教學部門廣泛使用。例如在飛機制造過程中,從設計、性能測試及特性分析直到飛行模

5、擬,都可能涉及到EDA技術。 傳統的設計方法采用自底向上的設計方法,一般先按電子系統的具體功能要求進行功能劃分,然后對每個子模塊畫出真值表,用卡諾圖進行手工邏輯簡化,寫出布爾表達式,畫出相應的邏輯線路圖,再據此選擇元器件,設計電路板,最后進行實測與調試,由于無法進行硬件系統功能仿真,如果某一過程存在錯誤,查找和修改十分不便,所以這是一種費時、費力的設計方法,而現代電子設計技術(EDA)是自頂向下且先進高效的。在電子產品的設計理念、設計方式、系統硬件構成、設計的重用性、知識產權、設計周期等方面,EDA技術具有一定的優勢。數字邏輯電路實驗大多數都可以在計算機上利用EDA軟件進行設計、仿真

6、,只有極少量外部配件不能在計算機上進行仿真。因此,在實驗前期階段,即實驗預習階段的主要應用工具是EDA軟件,利用EDA軟件可以設計、仿真實驗課題,進行虛擬實驗。通過虛擬實驗使實驗者在進入真實實驗前就能對預做的實驗有相當的了解,甚至可以預測到實驗的結果。這樣在實際做實驗時,可以把許多設計型實驗的難度降低,同時能有更多的時間讓實驗者動手做實驗,研究問題,提高實驗效率。當前數字電路設計已由計算機輔助設計進入到以計算機為主的設計時代。3 VHDL簡介3.1 硬件描述語言VHDL硬件描述語言(VHDL)是一種用于設計硬件電子系統的計算機語言,它用軟件編程的方式來描述電子系統的邏輯功能、電路結構和連接形式

7、,與傳統的門級描述方式相比,它更適合大規模系統的設計。例如一個32位的加法器,利用圖形輸入軟件需要輸人500至1000個門,而利用VHDL語言只需要書寫一行“A=B+C” 即可。而且 VHDL語言可讀性強,易于修改和發現錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發,互不兼容,而且不支持多層次設計,層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國國防部正式推出了高速集成電路硬件描述語言VHDL,1987年IEEE采納VHDL為硬件描述語言標準(IEEE-STD-1076)。VHDL是一種全方位的硬件描述語言,包括系統行為級。寄存器傳輸級和邏輯門多個設

8、計層次,支持結構、數據流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由下向上的電路設計過程都可以用VHDL來完成。傳統的硬件電路設計方法是采用自下而上的設計方法,即根據系統對硬件的要求,詳細編制技術規格書,并畫出系統控制流圖;然后根據技術規格書和系統控制流圖,對系統的功能進行細化,合理地劃分功能模塊,并畫出系統的功能框圖;接著就進行各功能模塊的細化和電路設計;各功能模塊電路設計、調試完成后,將各功能模塊的硬件電路連接起來再進行系統的調試,最后完成整個系統的硬件設計。采用傳統方法設計數字系統,特別是當電路系統非常龐大時,設計者必須具備較好的設計經驗

9、,而且繁雜多樣的原理圖的閱讀和修改也給設計者帶來諸多的不便。為了提高開發的效率,增加已有開發成果的可繼承性以及縮短開發周期,各ASIC研制和生產廠家相繼開發了具有自己特色的電路硬件描述語言(Hardware Description Language,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設計環境中使用,這給設計者之間的相互交流帶來了極大的困難。因此,開發一種強大的、標準化的硬件描述語言作為可相互交流的設計環境已勢在必行。于是,美國于1981年提出了一種新的、標準化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit) Hard

10、ware Description Language,簡稱VHDL。這是一種用形式化方法來描述數字電路和設計數字邏輯系統的語言。設計者可以利用這種語言來描述自己的設計思想,然后利用電子設計自動化工具進行仿真,再自動綜合到門電路,最后用PLD實現其功能。3.2 VHDL語言的特點具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關,當工藝改變時,只需修改相應程序中的屬性參數即可。當電路系統采用VHDL語言設計其硬件時,與傳統的電路設計方法相比較,具有如下的特點:第一層次是行為描述。所謂行為描述,實質上就是對整個系統的數學模型

11、的描述。一般來說,對系統進行行為描述的目的是試圖在系統設計的初始階段,通過對系統行為描述的仿真來發現設計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現,而是考慮系統的結構及其工作的過程是否能到達系統設計的要求。第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數據流描述)。如前所述,用行為方式描述的系統結構的程序,其抽象程度高,是很難直接映射到具體邏輯元件結構的。要想得到硬件的具體實現,必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統采用RTL方式描述,才能導出系統的邏輯表達式,才能進行邏輯綜合。第三層次是邏輯綜合

12、。即利用邏輯綜合工具,將RTL方式描述的程序轉換成用基本邏輯元件表示的文件(門級網絡表)。此時,如果需要,可將邏輯綜合的結果以邏輯原理圖的方式輸出。此后可對綜合的結果在門電路級上進行仿真,并檢查其時序關系。由自上而下的設計過程可知,從總體行為設計開始到最終的邏輯綜合,每一步都要進行仿真檢查,這樣有利于盡早發現設計中存在的問題,從而可以大大縮短系統的設計周期。由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設計數字系統時,可以根據硬件電路的設計需要,自行利用PLD設計自用的ASIC芯片,而無須受通用元器件的限制。4 Quartus II軟件簡介4.1軟件

13、介紹Quartus II 是Altera公司的綜合性PLD/FPGA開發軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。 Quartus II提供了完全集成且與電路結構無關的開發包環境,具有數字邏輯設計的全部特性,包括:可利用原理圖、結構框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設計實體文件,芯片(電路)平面布局連線編輯。 LogicLock增量設計方法,用戶可建立并優化系統,然后

14、添加對原始系統的性能影響較小或無影響的后續模塊,功能強大的邏輯綜合工具,完備的電路功能仿真與時序邏輯仿真工具,定時/時序分析與關鍵路徑延時分析,可使用SignalTap II邏輯分析工具進行嵌入式的邏輯分析,支持軟件源文件的添加和創建,并將它們鏈接起來生成編程文件,使用組合編譯方式可一次完成整體設計流程,自動定位編譯錯誤,高效的期間編程與驗證工具,可讀入標準的EDIF網表文件、VHDL網表文件和Verilog網表文件,能生成第三方EDA軟件使用的VHDL網表文件和Verilog網表文件。 4.2 Quartus II數字系統開發流程用Quartus II軟件進行數字系統開發,包括以下步驟。 (

15、1)設計輸入:包括原理圖輸入、HDL文本輸入、EDIF網表輸入、波形輸入等幾種方式。 (2)編譯:先根據設計要求設定編譯方式和編譯策略,如器件的選擇、邏輯綜合方式的選擇等;然后根據設定的參數和策略對設計項目進行網表提取、邏輯綜合、器件適配,并產生報告文件、延時信息文件及編程文件,供分析、仿真和編程使用。 (3)仿真與定時分析:仿真和定時分析均屬于設計校驗,其作用是測試設計的邏輯功能和延時特性。仿真包括功能仿真和時序仿真。定時分析器可通過三種不同的分析模式分別對傳播延時、時序邏輯性能和建立/保持時間進行分析。 (4)編程與驗證:用得到的編程文件通過編程電纜配置PLD,加入實際激勵,進行在線測試。

16、 在設計過程中,如果出現錯誤,則需重新回到設計輸入階段,改正錯誤或調整電路后重新測試。5 設計原理5.1設計思路本設計的總設計應用了原理圖的方式,首先,讓每一個模塊實現相應的功能,并將元件進行符號化,最后通過連線來完成最后的設計。依據任務書的要求,智力競賽搶答器應用了搶答鑒別模塊、計時模塊、蜂鳴器模塊、數碼管顯示模塊、動態顯示模塊等模塊組來完成的。其效果顯著,應用性能好。模塊簡介:(1) 搶答鑒別模塊:根據設計要求,首先要有清零按鈕rst,四人搶答按鈕s1、s2、s3、s4,顯示選手序號的輸出項xvhao,和報警輸出信號baojing。按下清零開關rst=1,xvhao=0000000,bao

17、jing=0關閉搶答電路;當clk上升沿到來且無人搶答時,鎖存信號temp加1,當有人搶答時,輸出搶答者序號且警報響起,當temp為2是警報解除開始答題。(2)計時模塊:在這個模塊中主要實現搶答過程中的計時功能,在有搶答開始后進行20秒的倒計時。其中有搶答時鐘信號clk1,系統復位信號rst,搶答使能信號queren,警報信號baojing,禁止搶答信號jinzh,計時十位和個位信號shiw,gew。,由給定的時鐘信號clk1觸發,主持人按下確認按鈕(queren=1)后,開始倒計時。當shiw=0000和gew=0000時,停止倒計時,且發出報警。(3)蜂鳴器模塊:在這個模塊中主要實現搶答過

18、程中的報警功能,當主持人按下控制鍵,有限時間內有人搶答或是計數到時蜂鳴器開始報警,狀態輸入信號b,輸出q,計數脈沖clk2。(4) 數碼管顯示模塊:在這個模塊中主要實現搶答過程中將BCD碼轉換成7段的功能。將個位和十位輸出的數字分別輸入兩個譯碼顯示模塊中,用7段數碼管顯示出來。(5)動態顯示模塊:在這個模塊中主要實現將靜態顯示轉換為動態顯示。輸入有高頻的脈沖信號clk0,和需要輸出顯示的信號gew,shiw,xvhao,分別顯示在不同的段碼和位碼中。5.2搶答鑒別模塊5.2.1 搶答電路的設計這個電路有五個輸入和兩個輸出,其代碼如下:library ieee;use ieee.std_logi

19、c_1164.all;entity qdq isport(rst,s1,s2,s3,s4,clk:in std_logic; baojing:out std_logic; xvhao:buffer std_logic_vector(7 downto 0); end qdq;architecture bhv of qdq issignal temp:integer range 0 to 2;beginprocess(s1,s2,s3,s4,rst)beginif(rst='1') then xvhao<="00000000"baojing<=

20、9;0'elsif(clk'event and clk='1')thentemp<=temp+1;if(xvhao="00000000")thenif(s1='1')then xvhao<="00000110"baojing<=s1 ;elsif(s2='1')then xvhao<="01011011"baojing<=s2;elsif(s3='1')then xvhao<="01001111"ba

21、ojing<=s3;elsif(s4='1')then xvhao<="01100110"baojing<=s4;end if;else null;end if;if(temp=2)thenbaojing<='0'end if;end if;end process;end bhv;其模塊封裝結果如圖5-1。5-1搶答電路封裝圖5.2.2仿真波形在Quartus II軟件繪制上述原理圖,再通過編譯和時序仿真,可得到如下的仿真波形:圖5-2 仿真波形由上圖仿真圖可知在搶答開始時,先進行一次復位操作才能開始搶答,只有第一個搶

22、答的人將會被標記,并做出輸出,接下來的觸發將不會影響輸出,從而達到了搶答的效果。直到下一輪搶答開始,又將使觸發有效。5.3計時模塊5.3.1計時模塊設計其代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishi isport(clk1,jinzhi,queren,rst:in std_logic; gew,shiw:buffer std_logic_vector(3 downto 0); baojing :out std_logic); end jishi;archite

23、cture bhv of jishi isbeginprocess(clk1,queren,rst)beginif(rst='1')thengew<="0000"shiw<="0010"elsif( queren='1')thenif( jinzhi='0')thenif(gew/="0000"or shiw/="0000")then if(clk1'event and clk1='1')thenif(gew="0000&

24、quot;)thengew<="1001"shiw<=shiw-"0001"else gew<=gew-"0001" end if;end if;end if;end if;end if;if gew="0000" and shiw="0000" thenbaojing<='1'elsebaojing<='0'end if;end process;end bhv;在Quartus II軟件中將上述代碼形成一個封裝如圖5-3。圖5-3

25、計時器封裝5.3.2仿真波形在Quartus II軟件上輸入以上代碼,再通過編譯和時序仿真,可得到如下的仿真波形:圖10按鍵識別模塊圖圖5-4 計時模塊仿真波形從上面仿真圖中可以得出當輸入“0001”將會在數碼管上顯示1號碼,當輸入“0010”將會在數碼管上顯示2號碼,當輸入“0100”將會在數碼管上顯示3號碼,當輸入“1000”將會在數碼管上顯示4號碼。即可以將選手的號碼在數碼管上顯示。5.4蜂鳴器模塊5.4.1蜂鳴器模塊設計蜂鳴器就是用到了計數器,在本設計中用了大約2秒的計時(當時鐘信號為1Hz時),就是只要有選手或者倒計時的時間到0時,都將觸發蜂鳴器并進行計時,當計時間到后,會自動停止蜂

26、鳴器。其代碼如下:library ieee;use ieee.std_logic_1164.all;entity fengming isport(clk2,b:in std_logic; q:out std_logic); end fengming;architecture bhv of fengming issignal temp:integer range 0 to 10;beginprocess(clk2,b)beginif(b='1')thenq<=clk2;else q<='0'end if;end process;end bhv;在Qua

27、rtus II軟件中將上述代碼形成一個封裝如圖5-5。圖5-5 蜂鳴器封裝5.4.2仿真波形在Quartus II軟件上輸入以上代碼,再通過編譯和時序仿真,可得到如下的仿真波形: 圖5-6 蜂鳴器計數器仿真波形5.5數碼管顯示模塊5.5.1數碼管顯示模塊的設計該模塊共有2個引腳(一個輸入、一個輸出),可以將計時時間和選手序號顯示在數碼管上,下面是其主代碼:library ieee;use ieee.std_logic_1164.all;entity xianshi isport(xin:in std_logic_vector(3 downto 0);xout:out std_logic_vec

28、tor(7 downto 0);end xianshi;architecture bhv of xianshi isbeginprocess(xin)begincase xin iswhen "0000"=>xout<="00111111"when "0001"=>xout<="00000110"when "0010"=>xout<="01011011"when "0011"=>xout<="010

29、01111"when "0100"=>xout<="01100110"when "0101"=>xout<="01101101"when "0110"=>xout<="01111101"when "0111"=>xout<="00000111"when "1000"=>xout<="01111111"when "100

30、1"=>xout<="01101111"when others=>xout<="00000000"end case;end process;end bhv;在Quartus II軟件中將上述代碼形成一個封裝如圖5-7。圖5-7 數碼管顯示封裝5.5.2仿真波形在Quartus II軟件上輸入以上代碼,再通過編譯和時序仿真,可得到如下的仿真波形:圖5-8仿真波形5.6動態顯示模塊5.6.1動態管顯示模塊的設計該模塊是決定計時時間和選手序號顯示在數碼管什么位置上,下面是其主代碼:library ieee;use ieee.s

31、td_logic_1164.all;use ieee.std_logic_unsigned.all;entity dongtai isport(clk0:in std_logic; gew,shiw,xvhao:in std_logic_vector(7 downto 0); duanma,weima :out std_logic_vector(7 downto 0);end dongtai;architecture bhv of dongtai issignal temp:integer range 0 to 3;beginprocess(clk0)beginif (clk0'eve

32、nt and clk0='1')thentemp<=temp+1;if(temp=3)thentemp<=0;end if;end if;case temp iswhen 0 =>duanma<=gew;weima<="00000001"when 1=>duanma<=shiw;weima<="00000010"when 2=>duanma<=xvhao;weima<="00001000"when others=>NULL;end case;end process;end bhv;在Quartus II軟件中將上述代碼形成一個封裝如圖5-9。圖5-9 動態顯示封裝5.7主原理圖將上述模塊進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論