【正文】
EDA 小學(xué)期 報(bào)告 設(shè)計(jì)課題: 四路 搶答器 學(xué) 院 : 信息學(xué)院 專業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 職 稱: 講 師 日 期: 2021 年 12 月 17 日 1 一 、 摘要 EDA 技術(shù)概述、可編程邏輯器件基礎(chǔ)、典型 FPGA/CPLD 的結(jié)構(gòu)與配置、原理圖與宏功能模塊設(shè)計(jì)、 VHDL 設(shè)計(jì)輸入方式、 VHDL 結(jié)構(gòu)與要素、 VHDL基本語句與基本設(shè)計(jì)、 VHDL 設(shè)計(jì)進(jìn)階、數(shù)字接口實(shí)例及分析、通信算法實(shí)例及分析等,附錄內(nèi)容為 EDA 實(shí)驗(yàn)系統(tǒng)簡介,并提供電子課件和習(xí)題解答?!?EDA 技術(shù)與 WHDL 設(shè)計(jì)》內(nèi)容新穎,技術(shù)先進(jìn),由淺入深,既有關(guān)于 EDA技術(shù)、大規(guī)??删幊踢壿嬈骷?VHDL 硬件描述語言的系統(tǒng)介紹,又有豐富的設(shè)計(jì)應(yīng)用實(shí)例。 本次試驗(yàn)是設(shè)計(jì)一個(gè)借助于 EDA 技術(shù)的只能四路搶答器。實(shí)現(xiàn)搶答的功能。 二‘關(guān)鍵詞 : EDA 、 四路搶答器 、 模擬和仿真 三 設(shè)計(jì)要求: 在許多比賽活動(dòng)中,為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,通常設(shè)置一臺(tái)搶答器,通過數(shù)顯、燈光及音響等各種手段批示出第一搶答者。同時(shí),還可以設(shè)置計(jì)分、犯規(guī)及獎(jiǎng)懲記錄等各種功 能。本設(shè)計(jì)的具體功能是: ,每組設(shè)置一個(gè)搶答按鈕供搶答者使用。 。在主持人交系統(tǒng)復(fù)位并發(fā)出搶答指令后,若有一組先按下?lián)尨痖_關(guān),則該組指示燈亮并用組別顯示電路顯示搶答者的組別,同時(shí)揚(yáng)聲器發(fā)出“嘀嘟”的雙音音響,且持續(xù) 2~3 秒。此時(shí),電路具備自鎖功能,使他組的搶答開關(guān)不起作用。 ,使每組在開始時(shí)的分?jǐn)?shù)預(yù)置成 100分,搶答后由主持人計(jì)分,答對一次加 10分。 四、所用軟件介紹 Quartos II 是 Altera 公司的綜合性 PLD 開發(fā)軟件,支持原理圖、 2 VHDL、 VerilogHDL 以及 AHDL( Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整 PLD 設(shè)計(jì)流程。 Quartus II 可以在 XP、 Linux 以及 Unix 上使用,除了可以使用Tcl 腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方 EDA 工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方 EDA 工具。 此外, Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種 DSP 應(yīng)用系統(tǒng);支持 Altera 的片上可編程系統(tǒng)( SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。 Maxplus II 作為 Altera 的上一代 PLD 設(shè)計(jì) 軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前 Altera 已經(jīng)停止了對 Maxplus II 的更新支持, Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。 Altera 在 Quartus II 中包含了許多諸如 SignalTap II、 Chip Editor 和 RTL Viewer 的設(shè)計(jì)輔助工具,集成了 SOPC 和 HardCopy 設(shè)計(jì)流程,并且繼承了 Maxplus II 友好的圖形界面及簡便的使用方法。 Altera Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境 , 由于其強(qiáng)大的設(shè)計(jì) 能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。 3 圖 Quartus II 運(yùn)行界面 五 、系統(tǒng)方案論證與模塊劃分: 根據(jù)系統(tǒng)設(shè)計(jì)要求可知: :各組的搶答按鈕 A、 B、 C、 D,系統(tǒng)清零信號(hào) CLR,系統(tǒng)時(shí)鐘信號(hào) CLK,計(jì)分復(fù)位端 RST,加分按鈕端 ADD,計(jì)時(shí)預(yù)置控制端 LDN,計(jì)時(shí)使能端 EN,計(jì)時(shí)預(yù)置數(shù)據(jù)調(diào)整按鈕 TA、 TB; :四個(gè)組搶答成功與否的指示燈控制信號(hào)輸出口LED_A、 LES_B、 LED_C、 LED_D,四個(gè)組搶答時(shí)的計(jì)時(shí)數(shù)碼顯示控制信號(hào)若干,搶答 成功組別顯示的控制信號(hào)若干,各組計(jì)分動(dòng)態(tài)顯示的控制信號(hào)若干。 :第一搶答信號(hào)的鑒別和鎖存功能;搶答計(jì)時(shí)功能;各組得分的累加和動(dòng)態(tài)顯示功能。 根據(jù)以上的分析,我們可將整個(gè)系統(tǒng)分為三個(gè)主要模塊:搶鑒別模塊QDJB;搶答計(jì)時(shí)模塊 JSQ;搶答計(jì)分模塊 JFQ;對于需顯示的信息,需增加或 4 外接譯碼器,進(jìn)行顯示譯碼。考慮到 FPGA、 CPLD的可用接口及一般 EDA實(shí)驗(yàn)開發(fā)系統(tǒng)的輸出顯示資源的限制,這里我們將組別顯示和計(jì)時(shí)顯示的譯碼器內(nèi)設(shè),而將各組的計(jì)分顯示的譯碼器外接。整個(gè)系統(tǒng)的組成框圖如圖 21所示: 系統(tǒng)的工作原理如下:當(dāng)主持人按下使能端 EN1 時(shí),搶答器開始工作, A、B、 C、 D 四個(gè)搶答者誰最先搶答成功則此選手的臺(tái)號(hào)燈( LED_A— LED_D)將點(diǎn)亮,并且組別顯示數(shù)碼管將顯示出搶答成功者的臺(tái)號(hào),并由蜂鳴器發(fā)出搶答成功的警報(bào);接下來主持人提問,若回答正確,主持人按加分按鈕 ADD,搶答計(jì)分模塊 JFQ 將給對應(yīng)的組加分,并將該組的總分顯示在對應(yīng)的選手計(jì)分?jǐn)?shù)碼管 JF2_AJF0_A、 JF2_BJF0_B、 JF2_CJF0_C、 JF2_DJF0_D、上。在此過程中,主持人可以采用計(jì)時(shí)手段( JSQ 模塊), 打開計(jì)時(shí)器使計(jì)時(shí)預(yù)置控制端LDN有效,輸入搶答或回答時(shí)間,使計(jì)時(shí)使能端 EN 有效( EN 與 EN1 接在同一端,可共同控制),開始計(jì)時(shí)。完成第一輪搶答后,主持人清零,重新開始,步驟同上 。 六、各個(gè)模塊的功能實(shí)現(xiàn) 1 按鍵存儲(chǔ)電路模塊 library ieee。 use 。 entity store is port(en,clr:in std_logic。 cp:in std_logic_vector(3 downto 0)。 q:out std_logic_vector(3 downto 0))。 end。 5 architecture store_arc of store is begin process(cp,clr,en) begin if en=39。139。then if clr=39。039。then q=0000。 elsif cp=0001then q=0001。 elsif cp=0010then q=0010。 elsif cp=0100then q=0100。 elsif cp=1000then q=1000。 end if。 end if。 end process。 end store_arc。 圖 按鍵存儲(chǔ)電路仿真圖 2 鎖存器模塊 library ieee。 use 。 entity lock is port(d:in std_logic_vector(3 downto 0)。 6 clk,clr:in std_logic。 q:out std_logic_vector(3 downto 0)。 alm:out std_logic)。 end lock。 architecture lockb_arc of lock is signal al:std_logic。 signal ql:std_logic_vector(3 downto 0)。 begin process(clk,clr) begin if clr=39。039。then ql=0000。al=39。039。 elsif clk39。event and clk=39。139。then ql=d。 al=d(0) or d(1) or d(2) or d(3)。 end if。 end process。 alm=al。q=ql。 end lockb_arc。 圖 鎖存器仿真波形 7 譯碼電路模塊 library ieee。 use 。 entity decode is port(clr,clk:in std_logic。 ssin: in std_logic_vector(3 downto 0)。 ssout: out std_logic_vector(6 downto 0))。 end decode。 architecture decode_arc of decode is begin process(ssin) begin if clr=39。039。then ssout=0000000。 elsif clk39。event and clk=39。139。then case ssin is when0001=ssout=0000110。 when0010=ssout=1011011。 when0011=ssout=1001111。 when0100=ssout=1100110。 when others=ssout=0000000。 end case。 end if。 8 end process。 end decode_arc。 圖 譯碼電路的仿真 4 編碼模塊 library ieee。 use 。 entity encode is port(d: in std_logic_vector(3 downto 0)。 q:out std_logic_vector(3 downto 0))。 end encode。 architecture encode_arc of encode is begin process(d) begin if d=0001 then q=0001。 elsif d=0010 then q=0010。 elsif d=0011 then q=0100。 elsif d=0100 then q=1000。 else q=0000。 end if。 9 end process。 end encode_arc。 圖 編碼的仿真 倒計(jì)時(shí)模塊 library ieee。 use 。 use 。 entity count is port(clk,en,clr:in std_logic。 sound:out std_logic)。 end count。 architecture count_arc of count is begin process(clk,en,clr) variable ll:std_logic_vector(3 downto 0)。 variable hh:std_logic_vector(2 downto 0):=111。 begin if clr=39。039。 then sound=39。039。 elsif clk39。event and clk=39。139。 then 10 if en=39。139。then if ll=0 and hh=0 then sound=39。139。 elsif ll=0 then ll:=1001。hh:=hh1。 else ll:=ll1。 end if。 else sound=39。039。 hh:=110。ll:=1001。 end if。 end if。 end pr