基于vhdl智力競賽搶答器設計說明書_第1頁
基于vhdl智力競賽搶答器設計說明書_第2頁
基于vhdl智力競賽搶答器設計說明書_第3頁
基于vhdl智力競賽搶答器設計說明書_第4頁
基于vhdl智力競賽搶答器設計說明書_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 長沙理工大學?計算機組成原理?課程設計報告 毛 俊學 院 計算機與通信工程 專 業(yè) 網絡工程 班 級 網絡工程08-02 學 號 202158080214 學生姓名 毛 俊 指導教師 蔡 爍 課程成績 完成日期 2021年12月31日課程設計任務書計算機與通信工程學院 計算機科學與技術專業(yè) 課程名稱計算機組成原理課程設計時間20212021學年第一學期1718周學生姓名毛 俊指導老師蔡 爍題 目基于單片機水溫控制系統主要內容: 使用EDA技術并用VHDL語言來設計一個智力競賽搶答器,從而到達熟練掌握VHDL。要求:1通過對相應文獻的收集、分析以及總結,給出相應課題的背景、意義及現狀研究分析。

2、2通過課題設計,掌握計算機組成原理的分析方法和設計方法。3學按要求編寫課程設計報告書,能正確闡述設計和實驗結果。4學生應抱著嚴謹認真的態(tài)度積極投入到課程設計過程中,認真查閱相應文獻以及實現,給出個人分析、設計以及實現。應當提交的文件:1課程設計報告。2課程設計附件主要是源程序。課程設計成績評定學 院 計算機通信工程 專 業(yè) 網絡工程 班 級 網絡08-02 班 學 號 202158080214 學生姓名 毛 俊 指導教師 蔡 爍 課程成績 完成日期 2021年12月31日指導教師對學生在課程設計中的評價評分工程優(yōu)良中及格不及格課程設計中的創(chuàng)造性成果學生掌握課程內容的程度課程設計完成情況課程設計

3、動手能力文字表達學習態(tài)度標準要求課程設計論文的質量指導教師對課程設計的評定意見綜合成績 指導教師簽字 年 月 日基于VHDL的智力競賽搶答器學生:毛 俊 指導老師:蔡 爍摘要:EDA技術作為現代電子設計最新技術的結晶,其廣闊的應用前景和深遠的影響已毋庸置疑,它在信息工程類專業(yè)中的根底地位和核心作用也逐漸被人們所認識。許多高等學校開設了相應的課程,并為學生提供了課程設計、綜合實踐、電子設計競賽、畢業(yè)設計、科學研究和產品開發(fā)等EDA技術的綜合應用實踐環(huán)節(jié)。相關的工程技術人員也特別重視學習EDA技術,并渴望提高其工程應用能力。   對于迅猛開展的EDA技術的綜合應用,從EDA技術

4、的綜合應用系統的深度來分,可分為3個層次: 功能電路模塊的設計; 算法實現電路模塊的設計; 片上系統/嵌入式系統/現代DSP系統的設計。   從EDA技術的綜合應用系統的最終主要硬件構成來分,已出現6種形式:    CPLD/FPGA系統; "CPLD/FPGA+MCU"系統; "CPLD/FPGA+專用DSP處理器"系統; 基于FPGA實現的現代DSP系統; 基于FPGA實現的SOC片上系統; 基于FPGA實現的嵌入式系統。   從EDA技術的綜合應用系統的完善層次來分,可分為3個層次:&qu

5、ot;EDA綜合系統"主體電路的設計、仿真及硬件驗證;"EDA綜合系統"主體電路的設計、仿真、硬件驗證+系統外圍電路PCB的設計與制作;"EDA綜合系統"主體電路的設計、仿真、硬件驗證+系統整體電路PCB的設計與制作及系統的組裝、調試。 關鍵詞:EDA、搶答器、電路設計、程序設計、仿真、嵌入式系統目錄1 引 言61.1 智力競賽搶答器的設計目的61.2 本設計任務和根本內容72 EDA 和VHDL簡介8 EDA的簡介82.2.1 VHDL的簡介82.2.2 VHDL語言的特點103 基于VHDL的智力競賽搶答器的設計規(guī)劃過程10智力競賽搶答器的

6、組成原理12搶答器模塊的設計133. 鑒別鎖存模塊的設計133. 答題計時模塊的設計143. 計分電路模塊163. 掃描顯示模塊194 結束語22參考文獻23代碼附錄241 引言無論是在學校、工廠、軍隊還是益智性電視節(jié)目, 都會舉辦各種各樣的智力競賽, 都會用到搶答器。目前市場上已有各種各樣的智力競賽搶答器, 但絕大多數是早期設計的, 以模擬電路、數字電路或者模擬電路與數字電路相結合的產品。這局部搶答器已相當成熟, 但功能越多的電路相對來說就越復雜, 且本錢偏高, 故障高, 顯示方式簡單( 有的甚至沒有顯示電路) , 無法判斷提前搶按按鈕的行為, 不便于電路升級換代。本設計就是基于VHDL設計

7、的一個智力競賽搶答器盡量使競賽真正到達公正、公平、公開。1.1 設計的目的 本次設計的目的就是在掌握EDA實驗開發(fā)系統的初步使用根底上,了解EDA技術,了解并掌握VHDL硬件描述語言的設計方法和思想,通過學習的VHDL語言結合電子電路的設計知識理論聯系實際,掌握所學的課程知識,學習VHDL根本單元電路的綜合設計應用。通過對智力競賽搶答器的設計,穩(wěn)固和綜合運用所學課程,理論聯系實際,提高設計能力,提高分析、解決計算機技術實際問題的獨立工作能力。本文采用經輸入與非門和非門后的反響信號的高電平作為解鎖存,用555定時器的模型來倒計時,同時以脈沖信號來控制加法器和減法器來控制搶答過程中的計分,應用二極

8、管和數碼顯示管為主要部件來設計掃描顯示器。通過課程設計深入理解VHDL語言的精髓和掌握運用所學的知識,到達課程設計的目標。 設計的根本內容本文是設計的一個四路智力競賽搶答器,利用VHDL設計搶答器的各個模塊,并使用EDA 工具對各模塊進行仿真驗證。智力競賽搶答器的設計分為四個模塊:鑒別鎖存模塊;答題計時模塊;搶答計分模塊以及掃描顯示模塊。把各個模塊整合后,通過電路的輸入輸出對應關系連接起來。設計成一個有如下功能的搶答器:1具有第一搶答信號的鑒別鎖存功能。在主持人發(fā)出搶答指令后,假設有參賽者按搶答器按鈕,那么該組指示燈亮,顯示器顯示出搶答者的組別。同時電路處于自鎖狀態(tài),使其他組的搶答器按鈕不起作

9、用。2具有計分功能。在初始狀態(tài)時,主持人可以設置答題時間的初始值。在主持人對搶答組別進行確認,并給出倒計時計數開始信號以后,搶答者開始答復以下問題。此時,顯示器從初始值開始計時,計至0時停止計數。3具有計分功能。在初始狀態(tài)時,主持人可以給每組設置初始分值。第三者組搶答完畢后,由主持人打分,答對一次加10分階段,錯那么減10分。 4掃描顯示功能。在初始狀態(tài)時,各組計分給出一個固定的值并將它掃描顯示在屏幕上,當計分或者要顯示的數據發(fā)生變化時,再次掃描并顯示出來。2 EDA、VHDL簡介2.1 EDA技術  EDA技術是在電子CAD技術根底上開展起來的計算機軟件系統,是指以計算機為工作平臺

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

11、計、PCB設計和IC設計。EDA 設計可分為系統級、電路級和物理實現級。2.2 硬件描述語言VHDL VHDL的簡介  VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認為標準硬件描述語言 。自IEEE公布了VHDL的標準版本,IEEE-1076簡稱87版)之后,各EDA公司相繼推出了自己的VHDL設計環(huán)境,或宣布自己的設計工具可以和VHDL接口。此后VHDL在電子設計領域得到了廣泛的接受,并逐步取代了原有的非標

12、準的硬件描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展VHDL的內容,公布了新版本的VHDL,即IEEE標準的1076-1993版本,簡稱93版。現在,VHDL和Verilog作為IEEE的工業(yè)標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,VHDL于Verilog語言將承當起大局部的數字系統設計任務。 VHDL主要用于描述數字系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序

13、結構特點是將一項工程設計,或稱設計實體可以是一個元件,一個電路模塊或一個系統分成外部或稱可是局部,及端口)和內部或稱不可視局部,既涉及實體的內部功能和算法完成局部。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外局部的概念是VHDL系統設計的根本點。VHDL比其它硬件描述語言相比有以下優(yōu)點: 1與其他的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了他成為系統設計領域最正確的硬件描述語言。強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大規(guī)模電子系統的重要保證。2VHDL豐富的仿真語句和庫函數,使得在任何

14、大系統的設計早期就能查驗設計系統的功能可行性,隨時可對設計進行仿真模擬。3VHDL語句的行為描述能力和程序結構決定了他具有支持大規(guī)模設計的分解和已有設計的再利用功能。符合市場需求的大規(guī)模系統高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現。4對于用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設計轉變成門級網表。5VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最終設計實現的目標器件是什么,而進行獨立的設計。VHDL語言的特點應用VHDL進行系統設計,有以下幾方面的特點。一功能強大VHDL具有功能強大的語言結構。它

15、可以用明確的代碼描述復雜的控制邏輯設計。并且具有多層次的設計描述功能,支持設計庫和可重復使用的元件生成。VHDL是一種設計、仿真和綜合的標準硬件描述語言。二可移植性VHDL語言是一個標準語言,其設計描述可以為不同的EDA工具支持。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植到另一個綜合工具,從一個工作平臺移植到另一個工作平臺。此外,通過更換庫再重新綜合很容易移植為ASIC設計。三獨立性VHDL的硬件描述與具體的工藝技術和硬件結構無關。設計者可以不懂硬件的結構,也不必管最終設計實現的目標器件是什么,而進行獨立的設計。程序設計的硬件目標器件有廣闊的選擇范圍,可以是各系列的CPLD、

16、FPGA及各種門陣列器件。四可操作性由于VHDL具有類屬描述語句和子程序調用等功能,對于已完成的設計,在不改變源程序的條件下,只需改變端口類屬參量或函數,就能輕易地改變設計的規(guī)模和結構。五靈活性VHDL最初是作為一種仿真標準格式出現的,有著豐富的仿真語句和庫函數。使其在任何大系統的設計中,隨時可對設計進行仿真模擬。所以,即使在遠離門級的高層次即使設計尚未完成時,設計者就能夠對整個工程設計的結構和功能的可行性進行查驗,并做出決策。3 設計規(guī)劃過程3.1智力競賽搶答器的組成原理因為設計的是四路搶答器,所以系統的輸入信號有:各組的搶答按鈕A、B、C、D,系統清零信號CLR,系統時鐘信號CLK,計分復

17、位端RST,加分按鈕端ADD,計時預置控制端LDN,計時使能端EN,計時預置數據調整按鈕TA、TB;系統的輸出信號有:四個組搶答成功與否的指示燈控制信號輸出口LEDA、LEDB、LEDC、LEDD,四個組搶答時的計時數碼顯示控制信號假設干,搶答成功組別顯示的控制信號假設干,各組計分動態(tài)顯示的控制信號假設干。 根據以上的分析,我們可將整個系統分為四個主要模塊:鑒別鎖存模塊,答題計時模塊,計分電路模塊,掃描顯示模塊??傁到y框圖如3.1所示。 第四組 第一組掃描顯示揚聲器組別顯示主持人復位時間到搶答信號計 分 電 路答題計時電路 第一信號輸出第一信號鑒別,鎖存加分復位減分圖3.1 系統框圖搶答器模塊

18、的設計搶答器中各個模塊由VHDL實現后,利用EDA工具對各模塊進行了時序仿真Timing Simulation,其目的是通過時序可以更清楚的了解程序的工作過程。鑒別鎖存模塊的設計 鑒別鎖存模塊的關鍵是準確判斷出第一搶答者并將其鎖存,實現的方法可使用觸發(fā)器或鎖存器,在得到第一信號后將輸入封鎖,使其它組的搶答信號無效。形成第一搶答信號后,用編碼、譯碼及數碼顯示電路顯示第一搶答者的組別,控制揚聲器發(fā)出音響,并啟動答題計時電路。本模塊采用74HC373芯片,一開始,當所有開關均未按下時,鎖存器輸出全為高電平,經輸入與非門和非門后的反響信號仍為高電平,該信號作為鎖存器使能端控制信號,使鎖存器處于等待接收

19、觸發(fā)輸入狀態(tài);當任一開關按下時,輸出信號中必有一路為低電平,那么反響信號變?yōu)榈碗娖?,鎖存器剛剛接收到的開關被鎖存,這時其它開關信息的輸入將被封鎖。由此可見,觸發(fā)鎖存電路具有時序電路的特征,是實現搶答器功能的關鍵。鑒別鎖存電路可以由VHDL程序來實現,以下是一斷鑒別鎖存的VHDL程序: BEGIN PROCESS(CLK) IS BEGIN IF CLR='0' THEN STATES<="0000" A1<='0'B1<='0'C1<='0'D1<='0' ELSI

20、F CLK'EVENT AND CLK='1' THEN IF (A='0'AND B='1'AND C='1'AND D='1') THEN A1<='1' B1<='0' C1<='0' D1<='0' STATES<=W1; ELSIF (A='1'AND B='0'AND C='1'AND D='1') THEN A1<='0&#

21、39; B1<='1' C1<='0' D1<='0' STATES<=W2; ELSIF (A='1'AND B='1'AND C='0'AND D='1') THEN A1<='0' B1<='0' C1<='1' D1<='0' STATES<=W3; ELSIF (A='1'AND B='1'AND C='1'A

22、ND D='0') THEN A1<='0' B1<='0' C1<='0' D1<='1' STATES<=W4; - ELSE A1<='0' B1<='0' C1<='0' D1<='0' STATES<="0000" END IF; END IF; END PROCESS; END ARCHITECTURE ART; 鑒別鎖存電路由VHDL程序實現后,其仿真圖如下圖

23、。 圖 鑒別鎖存仿真圖時序仿真分析:RST,STA為輸入控制信號,A,B,C,D為輸入信號,表示參與答題的四位選手,START,A1,B1,C1,D1為輸出信號,表示搶答的輸出結果,如下圖:當A,B,C,D四個輸入信號,有一個先為1時候,表示首先搶答,那么輸出A1為1,表示搶答成功,其他信號被屏蔽,為無效信號。3.2.2答題計時模塊答題計時模塊的任務是當主持人啟動這個計時開關時開始計時,如果在規(guī)定的時間內答完題那么答題有效,如果在規(guī)定的時間內沒有完成,那么答題無效。計時器從規(guī)定的時間倒計時,計時為零時計時結束。答題有無效作憑主持人來判斷。本模塊由比擬器C1和C2,根本RS觸發(fā)器和三極管T1組成

24、。兩個比擬器的翻轉分別由高電平觸發(fā)THR和低電平觸發(fā)TRI的輸入電壓與比擬基準電壓比擬決定,其輸出控制RS觸發(fā)器和放電BJT晶體客T的狀態(tài)。計時電路可以由VHDL程序來實現,以下是一斷計時的VHDL程序: BEGIN IF CLR='0' THEN DA<="0000" DB<="0000" ELSIF clock'event and clock='1' then IF TA='0' THEN IF DA="1001" THEN DA<="0000&q

25、uot; ELSE DA<=DA+'1' ; END IF; END IF; IF TB='0' THEN IF DB="1001" THEN DB<="0000" ELSE DB<=DB+'1' END IF; END IF; END IF; END PROCESS; PROCESS(clock) IS VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEG

26、IN IF CLR='0' THEN TMPA:="0000" TMPB:="0000" ELSIF clock'EVENT AND clock='1' THEN IF LDN='0' THEN TMPA:=DA; TMPB:=DB; ELSIF EN='1' THEN IF TMPA="0000" THEN TMPA:="1001" IF TMPB="0000" THEN TMPB:="1001" EL

27、SE TMPB:=TMPB-1; END IF; ELSE TMPA:=TMPA-1; END IF; END IF; END IF; QA<=TMPA; QB<=TMPB; END PROCESS; END ARCHITECTURE ART; 答題計時電路由VHDL程序實現后,其仿真圖如下圖。 圖 答題計時仿真圖時序仿真分析:CLK為輸入時鐘信號,LDN為輸入信號,表示開始答題,如下圖:中選手開始答題的時候,CLK輸入時鐘脈沖信號,開始記時間,中選手答題完畢后,記時結束,如假設在規(guī)定時間內沒完成答題,那么表示答題失敗。3.2.3計分電路模塊 計分電路模塊是給答題人計分用的,按照規(guī)

28、定如果主持人判定答題有效那么加分,如無效那么按照設定不加分或者扣分。并將分數顯示在計分屏幕上。本模塊采用74LS112芯片,設置成兩個電路一個加法器和一個減法器。個位電路始終顯示為0所以將它直接接顯示器的個位,再把十位的看成個位加減,依此類推。電路中設加分,減分和復位按鈕。加法器和減法器電路中的單脈沖分別為加分和減分按鈕,而兩個電路中的清零電平開關就是復位按鈕。計分電路可以由VHDL程序來實現,以下是一斷計分的VHDL程序:BEGIN IF (clk'EVENT AND clk='1') THEN IF RST='0' THEN POINTS_A1:=&

29、quot;0000" POINTS_B1:="0000" POINTS_C1:="0000" POINTS_D1:="0000" ELSIF ADD='0' then cnt:=cnt+1; IF cnt=2500000 then cnt:=0; IF CHOS="0001" THEN IF POINTS_A1="1001" THEN POINTS_A1:="0000" ELSE POINTS_A1:=POINTS_A1+'1' EN

30、D IF; ELSIF CHOS="0010" THEN IF POINTS_B1="1001" THEN POINTS_B1:="0000" ELSE POINTS_B1:=POINTS_B1+'1' END IF; ELSIF CHOS="0011" THEN IF POINTS_C1="1001" THEN POINTS_C1:="0000" ELSE POINTS_C1:=POINTS_C1+'1' END IF; ELSIF CHOS

31、="0100" THEN IF POINTS_D1="1001" THEN POINTS_D1:="0000" ELSE POINTS_D1:=POINTS_D1+'1' END IF; else cnt:=0; END IF; END IF; END IF; END IF; AA1<=POINTS_A1; BB1<=POINTS_B1; CC1<=POINTS_C1; DD1<=POINTS_D1; END PROCESS; END ARCHITECTURE ART;計分電路由VHDL程序實現

32、后,其仿真圖如下圖。 圖 計分電路仿真圖時序仿真分析:RST為輸入控制信號,用來復位,ADD為輸入信號,表示答對一題加分,CHOSE輸入信號,用來選擇選手,AA2,AA1,AA0,BB2,BB1,BB0為輸出信號,表示記分的結果,如下圖:選擇A選手答題,如答對,那么輸出A2為1,如答錯,那么輸出A1為-1,如沒答,那么輸出A0為0。3.2.4掃描顯示模塊此模塊將計分電路中的計分結果通過掃描并顯示出來于屏幕上。搶答者和觀眾那么通過顯示屏幕上的分數來判別競賽都之間的成績。最終勝負結果也是通過這個分數來判別的。顯示局部采用動態(tài)掃描4 位LED 顯示接口電路, LED 動態(tài)顯示是單片機中應用最為廣泛的

33、一種顯示方式, 其接口電路是把所有顯示器的8個筆劃段adp 同名端并聯在一起, 而每一個顯示器的公共極COM是各自獨立地受I/O 線控制, CPU 的字段輸出口送出字形碼時, 所有顯示器由于同名端并連接收到相同的字形碼, 但究竟哪個顯示器亮, 那么取決于COM端, 而這一端是由I/O 控制的, 所以就可以自行決定何時顯示哪一位了, 在輪流點亮掃描過程中, 每位顯示器的點亮時間表是極為短暫的, 但由于人的視覺暫留現象及發(fā)光二極管的余輝將就盡管實際上各位顯示器并非同時點亮, 但只要掃描速度足夠快, 給人的印象就是一組穩(wěn)定的顯示數據, 不會有閃爍感。掃描顯示電路可以由VHDL程序來實現,以下是一斷掃

34、描顯示的VHDL程序:begin if (clk_fresh'event and clk_fresh='1') then cnt:=cnt+1; if cnt="000" then segcs<="10000000" seg<=ZBXS; elsif cnt="001" then segcs<="00100000" seg<=A1; elsif cnt="010" then segcs<="00010000" seg<

35、;=B1; elsif cnt="011" then segcs<="00001000" seg<=C1; elsif cnt="100" then segcs<="00000100" seg<=D1; elsif cnt="101" then segcs<="00000010" seg<=JSXS1; elsif cnt="110" then segcs<="00000001" seg<

36、=JSXS2; elsif cnt="111" then segcs<="00000000" seg<="0000000" end if; end if;end process;end rtl;掃描顯示由VHDL程序實現后,其仿真圖如下圖。 圖 掃描顯示電路仿真圖時序仿真分析:IN4為輸入信號,OUT為輸出顯示信號,如下圖,把輸入信號進行編碼輸出。4 結束語通過一個多星期的緊張工作,我終于完成了基于VHDL的四路智力競賽搶答器的設計。通過本次課程設計的學習,我深深的體會到設計課的重要性和目的性所在。本次設計課不僅僅培養(yǎng)了我

37、們實際操作能力,也培養(yǎng)了我們靈活運用課本知識,理論聯系實際,獨立自主的進行設計的能力。它不僅僅是一個學習新知識新方法的好時機,同時也是對我所學知識的一次綜合的檢驗和復習,使我明白了自己的缺陷所在,從而查漏補缺。希望學校以后多安排一些類似的實踐環(huán)節(jié),讓同學們學以致用。在設計中要求我要有耐心和毅力,還要細心,稍有不慎,一個小小的錯誤就會導致結果的不正確,而對錯誤的檢查要求我要有足夠的耐心,通過這次設計和設計中遇到的問題,也積累了一定的經驗,對以后從事集成電路設計工作會有一定的幫助。在應用VHDL的過程中讓我真正領會到了其并行運行與其他軟件順序執(zhí)行的差異及其在電路設計上的優(yōu)越性。用VHDL硬件描述語

38、言的形式來進行數字系統的設計方便靈活,利用EDA軟件進行編譯優(yōu)化仿真度極大地減少了電路設計時間和可能發(fā)生的錯誤,降低了開發(fā)本錢,這種設計方法必將在未來的數字系統設計中發(fā)揮越來越重要的作用。 參考文獻1康華光電子技術根底教程局部M北京:高等教育版社,20002宋衛(wèi)海,王明晶數字電子技術M濟南:山東科學技術出版社,20063曾繁泰,陳美金.VHDL程序設計M.北京:清華大學出版社,20014M.成都:電子科技大學出版社,2000附件1SCN 模塊的VHDL程序:-任一選手按下鍵后,鎖存器完成鎖存,對-其余選手的請求不做響應,直到主持人按-下復位鍵 -LIBRARY IEEE;USE IEEE.ST

39、D_LOGIC_1164.ALL;ENTITY SCN IS PORT( CP:IN STD_LOGIC; CLR:IN STD_LOGIC; Q:OUT STD_LOGIC);END SCN;ARCHITECTURE RTL OF SCN ISBEGIN PROCESS(CP,CLR) BEGIN IF CLR='0' THEN -不完整的條件產生鎖存 Q<='0' ELSIF CP'EVENT AND CP='0' THEN Q<='1' END IF; END PROCESS;END RTL;2譯碼器模塊

40、YMQ的VHDL程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY YMQ IS PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END YMQ; ARCHITECTURE ART OF YMQ ISBEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS when "0000" =>DOUT7<=&qu

41、ot;1000000"-0 when "0001" =>DOUT7<="1111001"-1 when "0010" =>DOUT7<="0100100"-2 when "0011" =>DOUT7<="0110000"-3 when "0100" =>DOUT7<="0011001"-4 when "0101" =>DOUT7<="00

42、10010"-5 when "0110" =>DOUT7<="0000010"-6 when "0111" =>DOUT7<="1111000"-7 when "1000" =>DOUT7<="0000000"-8 when "1001" =>DOUT7<="0010000"-9 when others =>DOUT7<="1111111" END

43、 CASE; END PROCESS; END ARCHITECTURE ART;3顯示模塊的VHDL程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity seg is Port (clk : in std_logic; A1:in std_logic_vector(6 downto 0); B1:in std_logic_vector(6 downto 0); C1:in std_logic_vector(6 downto

44、0); D1:in std_logic_vector(6 downto 0); ZBXS:in std_logic_vector(6 downto 0); JSXS1:in std_logic_vector(6 downto 0); JSXS2:in std_logic_vector(6 downto 0); seg : out std_logic_vector(6 downto 0); -輸出7位seg數據; segcs : out std_logic_vector(7 downto 0); -數碼管位選信號;end seg;architecture rtl of seg issignal

45、clk_fresh : std_logic;beginprocess(clk)- -1KHZ;用于數碼管掃描信號variable cnt : integer range 0 to 20000;-定時1MSbegin if clk'event and clk='1' then cnt:=cnt+1; if cnt<10000 then clk_fresh<='1' elsif cnt<20000 then clk_fresh<='0' else cnt:=0;clk_fresh<='0' end

46、 if; end if;end process;process(clk_fresh)-位選信號掃描時間1MSvariable cnt : std_logic_vector(2 downto 0);begin if (clk_fresh'event and clk_fresh='1') then cnt:=cnt+1; if cnt="000" then segcs<="10000000" seg<=ZBXS; elsif cnt="001" then segcs<="00100000

47、" seg<=A1; elsif cnt="010" then segcs<="00010000" seg<=B1; elsif cnt="011" then segcs<="00001000" seg<=C1; elsif cnt="100" then segcs<="00000100" seg<=D1; elsif cnt="101" then segcs<="00000010&quo

48、t; seg<=JSXS1; elsif cnt="110" then segcs<="00000001" seg<=JSXS2; elsif cnt="111" then segcs<="00000000" seg<="0000000" end if; end if;end process;end rtl;4主控模塊QDJB的VHDL程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(

49、CLR: IN STD_LOGIC; CLK: IN STD_LOGIC; A, B, C, D: IN STD_LOGIC; A1,B1,C1,D1: OUT STD_LOGIC; STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY QDJB; ARCHITECTURE ART OF QDJB IS CONSTANT W1: STD_LOGIC_VECTOR:="0001" CONSTANT W2: STD_LOGIC_VECTOR:="0010" CONSTANT W3: STD_LOGIC_VE

50、CTOR:="0011" CONSTANT W4: STD_LOGIC_VECTOR:="0100" BEGIN PROCESS(CLK) IS BEGIN IF CLR='0' THEN STATES<="0000" A1<='0'B1<='0'C1<='0'D1<='0' ELSIF CLK'EVENT AND CLK='1' THEN IF (A='0'AND B='1&#

51、39;AND C='1'AND D='1') THEN A1<='1' B1<='0' C1<='0' D1<='0' STATES<=W1; ELSIF (A='1'AND B='0'AND C='1'AND D='1') THEN A1<='0' B1<='1' C1<='0' D1<='0' STATES<=

52、W2; ELSIF (A='1'AND B='1'AND C='0'AND D='1') THEN A1<='0' B1<='0' C1<='1' D1<='0' STATES<=W3; ELSIF (A='1'AND B='1'AND C='1'AND D='0') THEN A1<='0' B1<='0' C1<='

53、;0' D1<='1' STATES<=W4; - ELSE A1<='0' B1<='0' C1<='0' D1<='0' STATES<="0000" END IF; END IF; END PROCESS; END ARCHITECTURE ART; 5定時模塊的VHDL程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY

54、 JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; TA,TB: IN STD_LOGIC; QA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JSQ; ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DB: STD_LOGIC_VECTOR(3 DOWNTO 0); signal tempcounter: integer range 0

55、 to 5000000; signal clock:std_logic; BEGINprocess(clk)beginif(clk'event and clk='1')then-上升沿tempcounter<=tempcounter+1;if tempcounter<2500000 then clock<='0'elsif tempcounter<5000000 then clock<='1'else tempcounter<=0;clock<='1'end if;end if;-end if;end process; PROCESS(TA,TB,CLR,clock) IS BEGIN IF CLR='0' THEN DA<="0000" DB<="0000" ELSIF clock'event and clock='1' then IF TA='0' THEN IF DA="1001" THEN DA<="0000" ELSE

溫馨提示

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

評論

0/150

提交評論