數(shù)字邏輯課程設(shè)計---基于FPGA的簡單運算器_第1頁
數(shù)字邏輯課程設(shè)計---基于FPGA的簡單運算器_第2頁
數(shù)字邏輯課程設(shè)計---基于FPGA的簡單運算器_第3頁
數(shù)字邏輯課程設(shè)計---基于FPGA的簡單運算器_第4頁
數(shù)字邏輯課程設(shè)計---基于FPGA的簡單運算器_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、洛陽理工學院課程設(shè)計報告課程名稱脈沖與數(shù)字電路設(shè)計題目簡單運算器專業(yè)通信工程班級學號姓名完成日期2012年06月12日課程設(shè)計任務(wù)書設(shè)計題目:基于FPGA的簡單運算器設(shè)計內(nèi)容:運用可編程軟件設(shè)計一個簡單的運算器,首先設(shè)計原理圖,并用Quartusii完成原理圖繪制,或編寫VHDL程序,調(diào)試電路或程序,下載到實驗箱設(shè)計要求:該運算器能完成-7到+7的簡單的加、減、與、異或四種運算功能,并且可以對溢出的結(jié)果進行修正。指導(dǎo)教師:2012年06月04日課程設(shè)計評語:成績指導(dǎo)教師:_年月日運算器摘要設(shè)計一個簡單運算器。由頂層電路、運算器、按鍵輸入、控制信號產(chǎn)生、修正結(jié)果、顯示等模塊構(gòu)成。用Quartus

2、 II繪制原理圖或編寫VHDL程序,然后封裝畫出電路圖,該簡單運算器可以實現(xiàn)加、減法算數(shù)運算和與、異或邏輯運算,且該運算器設(shè)計完之后經(jīng)過了Quartus II軟件和FPGA實驗板的下載驗證。關(guān)鍵詞:運算器,Quartus II,VHDL程序35數(shù)字邏輯課程設(shè)計報告目錄第一章系統(tǒng)原理81.1系統(tǒng)功能81.2系統(tǒng)原理圖91.3電路設(shè)計原理9第二章系統(tǒng)組成102.1按鍵模塊102.1.1按鍵模塊VHDL程序102.1.2按鍵模塊仿真波形142.1.3按鍵模塊電路封裝圖152.1.4按鍵模塊功能152.2控制信號產(chǎn)生模塊152.2.1控制模塊VHDL程序152.2.2控制模塊仿真波形182.2.3控制

3、模塊電路封裝圖182.2.4控制模塊功能192.3修正模塊192.3.1修正模塊VHDL程序192.3.2修正模塊仿真波形232.3.3修正模塊電路封裝圖232.3.4修正模塊功能242.4顯示模塊242.4.1顯示模塊VHDL程序242.4.2顯示模塊電路封裝圖272.4.3顯示模塊功能282.5運算器模塊282.5.1運算器模塊功能282.5.2運算器模塊電路圖28第三章定制選擇器293.1定制選擇器293.2用VHDL符號圖畫運算器頂層電路圖31第四章下載驗證及調(diào)試334.1器件選擇及引腳設(shè)置334.2配置文件下載34結(jié)論35參考文獻36前言隨著FPGA性能的不斷完善,F(xiàn)PGA器件的種類

4、日益豐富,受到世界范圍內(nèi)電子設(shè)計人員的普遍歡迎,并占據(jù)了較大的市場,其生產(chǎn)廠家也由原來的Xilinx公司一家增加到Altera、Actel、lattice等十幾家公司。Altera公司的主要產(chǎn)品有:屬于FPGA的FLEX、ACEX、APEX、Mercury、Excalibur、Stratix和Cyclone等系列;屬于CPLD的MAX和Classic系列。開發(fā)工具有,被普遍認為是最優(yōu)秀PLD 開發(fā)平臺之一的MAX+Plus II和支持APEX、Mercury、Excalibur、Stratix和Cyclone系列器件的Quartus II開發(fā)軟件。Cyclone系列器件是Altera公司推出的

5、低價位FPGA產(chǎn)品,是Stratix系列的簡化版,分為Cyclone I和Cyclone II兩個系列。Cyclone I系列產(chǎn)品為基于1.5V、采用0.13um全銅SRAM工藝的低成本FPGA。Cyclone II 系列產(chǎn)品基于1.2V,采用0.09um全銅CMOS工藝,SRAM編程技術(shù),其成本更低、容量更高、速度更快。它和高性能的Stratix II系列的FPGA是目前Altera公司主流產(chǎn)品。我的簡單運算器主要是用VHDL語言編寫,以Cyclone器件為依托,并下載到Altera仿真工具箱Cyclone-EP1C6Q240C8驗證功能成功,能夠初步完成簡單運算器的雛形。隨著大規(guī)模集成電路

6、技術(shù)和計算機技術(shù)的高速發(fā)展,在涉及通信、國防、工業(yè)自動化、計算機設(shè)計與應(yīng)用、儀器儀表等領(lǐng)域的電子系統(tǒng)設(shè)計工作中,F(xiàn)PGA技術(shù)的含量正以驚人的速度提升。電子類的新技術(shù)項目的開發(fā)也更多地依賴于FPGA技術(shù)的應(yīng)用,特別是隨著HDL等硬件描述語言綜合功能和性能的提高,計算機中許多重要的元件(包括CPU)都用硬件描述語言來設(shè)計和表達,許多微機CPU、硬核嵌入式系統(tǒng)(如ARM、MIPS)、軟核嵌入式系統(tǒng)(如NiosII)、大型CPU,乃至整個計算機系統(tǒng)都用FPGA來實現(xiàn),即所謂的單片系統(tǒng)SOC或SOPC(System On a Chip、System On a Programmerable Chip)。計

7、算機和CPU的設(shè)計技術(shù)及其實現(xiàn)途徑進入了一個全新的時代!不但如此,傳統(tǒng)的CPU結(jié)構(gòu)模式,如馮諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)正在接受巨大的挑戰(zhàn)。例如美國Wincom Systems 公司推出一款令人驚嘆的服務(wù)器,其核心部分是由FPGA完成的超強功能CPU。該系統(tǒng)工作能力超過50臺DELL或IBM計算機,或SUN Microsystems 公司的服務(wù)器。該服務(wù)器的處理速度要比傳統(tǒng)服務(wù)器快50到300倍。我們知道,傳統(tǒng)的PC機及服務(wù)器通常采用諸如Intel公司的奔騰處理器或SUN公司的SPARC芯片作為中央處理單元,而Wincom Systems的這款產(chǎn)品卻沒有采用微處理器,而是由FPGA芯片驅(qū)動。FPGA芯

8、片的運行速度雖比奔騰處理器慢,但可并行處理多項任務(wù),而微處理器一次僅能處理一項任務(wù)。因此,Wincom Systems的服務(wù)器只需配置幾個價格僅為2000多美元的FPGA芯片,便可擊敗SUN公司的服務(wù)器或采用Intel處理器的計算機。50多年前,匈牙利數(shù)學家馮諾依曼提出了計算機的設(shè)計構(gòu)想:通過中央處理器從儲存器中存取數(shù)據(jù),并逐一處理各項任務(wù)。然而現(xiàn)在,卻采用FPGA取代傳統(tǒng)微處理器獲得了更高的性能,致使美國Xilinx公司的首席執(zhí)行官Willem Roelandts認為:“由馮諾依曼提出的電腦架構(gòu)已經(jīng)走到盡頭”,“可編程芯片將掀起下一輪應(yīng)用高潮”。FPGA芯片操作靈活,可以重復(fù)擦寫無限次,而微

9、處理器均采用固定電路,只能進行一次性設(shè)計。設(shè)計人員可通過改變FPGA中晶體管的開關(guān)狀態(tài)對電路進行重寫,即重配置,從而盡管FPGA芯片的時鐘頻率要低于奔騰處理器,但是由于FPGA芯片可并行處理各種不同的運算,所以可以完成許多復(fù)雜的任務(wù)。正如Willem Roelandts所說的,“我們認為下一代超級電腦將基于可編程邏輯器件”,他聲稱,這種機器的功能比目前最大的超級電腦還要強大許多倍。EDA專家William Carter認為,只要EDA開發(fā)工具的功能允許,將有無數(shù)的證據(jù)證明FPGA 具有這種神奇的能力,進而實現(xiàn)基于FPGA的超級電腦的開發(fā)。此外,美國加州大學伯克利分校和楊百翰大學的研究人員也正在

10、設(shè)計基于FPGA的電腦,這些電腦可在運行中實現(xiàn)動態(tài)重配置。這對定位危險目標等軍事應(yīng)用和面容識別之類的計算密集型安全應(yīng)用十分有用。由此看來,在計算機應(yīng)用領(lǐng)域和計算機系統(tǒng)設(shè)計領(lǐng)域中,EDA技術(shù)和FPGA的應(yīng)用方興未艾!硬件描述語言HDL(Hardware Description Language)是EDA技術(shù)的另一重要組成部分,常見的HDL有:VHDL、Verilog HDL、System Verilog和SystemC。其中VHDL、Verilog在現(xiàn)在EDA設(shè)計中使用最多,也得到幾乎所有的主流EDA工具的支持。而后兩種HDL 語言尚處于完善過程中。VHDL語言具有很強的電路描述和建模能力,能從

11、多個層次對數(shù)字系統(tǒng)進行建模和描述,從而大大簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性。VHDL具有與具體硬件電路無關(guān)和與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述能力,在語言易讀性和層次化結(jié)構(gòu)設(shè)計方面表現(xiàn)了強大的生命力和應(yīng)用潛力。因此,VHDL支持各種模式的設(shè)計方法:自頂向下與自底向上或混合方法,在面對當今許多電子產(chǎn)品生命周期縮短,需要多次重新設(shè)計以融入最新技術(shù)、改變工藝等方面, VHDL都表現(xiàn)了良好的適應(yīng)性。第一章系統(tǒng)原理1.1系統(tǒng)功能該系統(tǒng)是基于FPGA設(shè)計的簡單運算器,可以實現(xiàn)簡單的-7到+7范圍內(nèi)的加、減、與、以及異或四則運算。將設(shè)計好的系統(tǒng)電路圖與硬件實驗板相連接,進行

12、運算驗證。該實驗板由一個8按鍵電路和一個32位LCD顯示器組成,通過相應(yīng)的按鍵輸入把運算結(jié)果顯示在LCD顯示器上。1.2系統(tǒng)原理圖1.3電路設(shè)計原理該運算器電路由按鍵輸入、控制、修正、顯示和運算五大模塊組成,來實現(xiàn)加、減、與、異或運算功能。首先按鍵模塊用于輸入兩個數(shù)和運算符,通過控制模塊傳送到運算器模塊進行運算,再連接到修正模塊,通過修正模塊對“溢出”的數(shù)值進行修正,最后顯示模塊功能實現(xiàn)把運算過程反應(yīng)到LCD顯示器上。第二章系統(tǒng)組成2.1按鍵模塊2.1.1按鍵模塊VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_

13、ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY KEY ISPORT(EN:OUT STD_LOGIC;YSF:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);RSTN,CLK:IN STD_LOGIC;KEYA,KEYB:IN STD_LOGIC;KADD,KSUB,KAND,KXOR,KEQU:IN STD_LOGIC;A,B,C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);XSYSF:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);XA,XB:OUT STD_LOGIC_VEC

14、TOR(7 DOWNTO 0);END KEY;ARCHITECTURE ARCH OF KEY ISSIGNAL TKADD,TKSUB,TKAND,TKXOR,TKEQU :STD_LOGIC;SIGNAL TA,TB:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN-保存A-PROCESS (KEYA,RSTN)BEGINIF RSTN='0' THEN TA<="0000"ELSIF (KEYA'EVENT AND KEYA='1')THENTA<=TA+1;END IF;END PROCESS

15、;-保存B-PROCESS (KEYB,RSTN)BEGINIF RSTN='0' THEN TB<="0000"ELSIF(KEYB'EVENT AND KEYB='1')THENTB<=TB+1;END IF;END PROCESS;-獲取信號-PROCESS(RSTN,KADD)BEGIN IF RSTN='0' THEN TKADD<='0'ELSIF (KADD'EVENT AND KADD='1')THEN TKADD<='1'

16、END IF;END PROCESS;-PROCESS(RSTN,KSUB)BEGIN IF RSTN='0' THEN TKSUB<='0'ELSIF (KSUB'EVENT AND KSUB='1')THEN TKSUB<='1'END IF;END PROCESS;-PROCESS(RSTN,KAND)BEGIN IF RSTN='0' THEN TKAND<='0'ELSIF (KAND'EVENT AND KAND='1')THEN TKA

17、ND<='1'END IF;END PROCESS;PROCESS(RSTN,KXOR)BEGIN IF RSTN='0' THEN TKXOR<='0'ELSIF (KXOR'EVENT AND KXOR='1')THEN TKXOR<='1'END IF;END PROCESS;-PROCESS(RSTN,KEQU)BEGIN IF RSTN='0' THEN TKEQU<='0'ELSIF (KEQU'EVENT AND KEQU=

18、9;1')THEN TKEQU<='1'END IF;END PROCESS;PROCESS(RSTN,CLK,TKADD,TKSUB,TKAND,TKXOR,TKEQU,TA,TB)BEGINIF RSTN='0' THEN YSF<="00"EN<='0'XSYSF<="00100000"ELSIF(CLK'EVENT AND CLK='1') THENIF TKADD='1' THEN YSF<="00"

19、XSYSF<="00101011"A<=TA;B<=TB;END IF;IF TKSUB='1' THEN YSF<="01"XSYSF<="00101101"A<=TA;B<=TB;END IF;IF TKAND='1' THEN YSF<="10"XSYSF<="00101010"A<=TA;C<=TB;END IF;IF TKEQU='1' THEN EN<='1

20、'END IF;END IF;END PROCESS;PROCESS(TA,TB,CLK)BEGINIF(CLK'EVENT AND CLK='1')THENCASE TA ISWHEN "0000"=>XA<="00110000"WHEN "0001"=>XA<="00110001"WHEN "0010"=>XA<="00110010"WHEN "0011"=>XA<=&qu

21、ot;00110011"WHEN "0100"=>XA<="00110100"WHEN "0101"=>XA<="00110101"WHEN "0110"=>XA<="00110110"WHEN "0111"=>XA<="00110111"WHEN "1000"=>XA<="00111000"WHEN "1001&qu

22、ot;=>XA<="00111001"WHEN "1010"=>XA<="01000001"WHEN "1011"=>XA<="01000010"WHEN "1100"=>XA<="01000011"WHEN "1101"=>XA<="01000100"WHEN "1110"=>XA<="01000101"

23、WHEN "1111"=>XA<="01000110"WHEN OTHERS =>NULL;END CASE;CASE TB ISWHEN "0000"=>XB<="00110000"WHEN "0001"=>XB<="00110001"WHEN "0010"=>XB<="00110010"WHEN "0011"=>XB<="00110011

24、"WHEN "0100"=>XB<="00110100"WHEN "0101"=>XB<="00110101"WHEN "0110"=>XB<="00110110"WHEN "0111"=>XB<="00110111"WHEN "1000"=>XB<="00111000"WHEN "1001"=>XB&

25、lt;="00111001"WHEN "1010"=>XB<="01000001"WHEN "1011"=>XB<="01000010"WHEN "1100"=>XB<="01000011"WHEN "1101"=>XB<="01000110"WHEN "1110"=>XB<="01000101"WHEN "

26、1111"=>XB<="01000110"WHEN OTHERS=>NULL;END CASE;END IF;END PROCESS;END ARCH;2.1.2按鍵模塊仿真波形2.1.3按鍵模塊電路封裝圖2.1.4按鍵模塊功能實現(xiàn)對按鍵的設(shè)定及控制,得以把運算數(shù)據(jù)輸入電路。2.2控制信號產(chǎn)生模塊2.2.1控制模塊VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CP3

27、 ISPORT(RSTN,CLK:IN STD_LOGIC; CP,CPT,CPMUX:BUFFER STD_LOGIC; SADD,SSUB,SAND,SXOR:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END CP3;ARCHITECTURE BEHAVIORAL OF CP3 ISTYPE STATE1 IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11);SIGNAL PRES1,NXS1:STATE1;TYPE STATE2 IS(SS0,SS1,SS2,SS3);SIGNAL PRES2,NXS2:STATE2;BEGINPRO

28、CESS(CLK,RSTN)BEGINIF (RSTN='0')THEN PRES1<=S0;ELSIF(CLK'EVENT AND CLK='1')THEN PRES1<=NXS1;END IF;END PROCESS;PROCESS(PRES1)BEGINCASE PRES1 IS WHEN S0=>CP<='1'CPMUX<='0'CPT<='0'NXS1<=S1; WHEN S1=> CP<='0'CPMUX<='0

29、'CPT<='0'NXS1<=S2; WHEN S2=>CP<='0'CPMUX<='1'CPT<='0'NXS1<=S3; WHEN S3=> CP<='1'CPMUX<='1'CPT<='0'NXS1<=S4; WHEN S4=>CP<='1'CPMUX<='0'CPT<='0'NXS1<=S5; WHEN S5=>

30、CP<='0'CPMUX<='0'CPT<='0'NXS1<=S6; WHEN S6=>CP<='0'CPMUX<='1'CPT<='0'NXS1<=S7; WHEN S7=>CP<='1'CPMUX<='1'CPT<='0'NXS1<=S8; WHEN S8=> CP<='1'CPMUX<='1'CPT<=

31、9;0'NXS1<=S9; WHEN S9=>CP<='0'CPMUX<='1'CPT<='1'NXS1<=S10; WHEN S10=>CP<='0'CPMUX<='1'CPT<='1'NXS1<=S11; WHEN S11=>CP<='1'CPMUX<='1'CPT<='1'NXS1<=S11; END CASE;END PROCESS;PROC

32、ESS(CP,RSTN)BEGINIF (RSTN='0')THEN PRES2<=SS0;ELSIF(CP'EVENT AND CP='0')THEN PRES2<=NXS2;END IF;END PROCESS;PROCESS(PRES2)BEGINCASE PRES2 IS WHEN SS0=> SADD<="00"SSUB<="00"SAND<="00"SXOR<="00" NXS2<=SS1; WHEN SS1=>

33、; SADD<="01"SSUB<="00"SAND<="00"SXOR<="00" NXS2<=SS2; WHEN SS2=> SADD<="00"SSUB<="01"SAND<="10"SXOR<="11" NXS2<=SS3; WHEN SS3=> SADD<="00"SSUB<="01"SAND<=&

34、quot;10"SXOR<="11" NXS2<=SS3;END CASE;END PROCESS;END BEHAVIORAL;2.2.2控制模塊仿真波形2.2.3控制模塊電路封裝圖2.2.4控制模塊功能實現(xiàn)對電路運算的控制。2.3修正模塊2.3.1修正模塊VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XZJG ISPORT(RSTN:IN STD_LOGIC; S:I

35、N STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,OVER,COUT:IN STD_LOGIC; T:IN STD_LOGIC_VECTOR(3 DOWNTO 0); FH:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SH,SL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END XZJG;ARCHITECTURE BEHAVIORAL OF XZJG ISSIGNAL OC:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN

36、PROCESS(RSTN,CLK,OVER,COUT)BEGINIF(CLK'EVENT AND CLK='1')THENOC<=OVER&COUT;END IF;END PROCESS;PROCESS(OC,CLK)BEGINIF(RSTN='0')THENTH<="0000"TL<="0000"ELSIF(CLK'EVENT AND CLK='1')THEN CASE OC IS WHEN"00"=>TH<="0000&

37、quot;CASE T I WHEN"0000"=>TL<="0000"FH<="00101011" WHEN"0001"=>TL<="0001"FH<="00101011" WHEN"0010"=>TL<="0010"FH<="00101011" WHEN"0011"=>TL<="0011"FH<=&qu

38、ot;00101011" WHEN"0100"=>TL<="0100"FH<="00101011" WHEN"0101"=>TL<="0101"FH<="00101011" WHEN"0110"=>TL<="0110"FH<="00101011" WHEN"0111"=>TL<="0111"FH<

39、="00101011" WHEN"1000"=>TL<="1000"FH<="01011101"WHEN"1001"=>TL<="0111"FH<="00101101" WHEN"1010"=>TL<="0110"FH<="00101101" WHEN"1011"=>TL<="0101"FH&

40、lt;="00101101" WHEN"1100"=>TL<="0100"FH<="00101101" WHEN"1101"=>TL<="0011"FH<="00101101" WHEN"1110"=>TL<="0010"FH<="00101101" WHEN"1111"=>TL<="0001"

41、;FH<="00101101" WHEN OTHERS=>NULL; END CASE;WHEN"01"=>TH<="0000"CASE T IS WHEN"0000"=>TL<="0000"FH<="00101011" WHEN"0001"=>TL<="0001"FH<="00101011" WHEN"0010"=>TL<=

42、"0010"FH<="00101011" WHEN"0011"=>TL<="0011"FH<="00101011" WHEN"0100"=>TL<="0100"FH<="00101011" WHEN"0101"=>TL<="0101"FH<="00101011" WHEN"0110"=>TL&

43、lt;="0110"FH<="00101011" WHEN"0111"=>TL<="0111"FH<="00101011" WHEN"1000"=>TL<="1000"FH<="00101101" WHEN"1001"=>TL<="0111"FH<="00101101" WHEN"1010"=>

44、;TL<="0110"FH<="00101101" WHEN"1011"=>TL<="0101"FH<="00101101" WHEN"1100"=>TL<="0100"FH<="00101101" WHEN"1101"=>TL<="0011"FH<="00101101" WHEN"1110"

45、=>TL<="0010"FH<="00101101" WHEN"1111"=>TL<="0001"FH<="00101101" WHEN OTHERS=>NULL; END CASE;WHEN"10"=>FH<="00101011" CASE T IS WHEN"1000"=>TH<="0000"TL<="1000" WHEN

46、"1001"=>TH<="0000"TL<="1001" WHEN"1010"=>TH<="0001"TL<="0000" WHEN"1011"=>TH<="0001"TL<="0001" WHEN"1100"=>TH<="0001"TL<="0010" WHEN"1101&q

47、uot;=>TH<="0001"TL<="0011" WHEN"1110"=>TH<="0001"TL<="0100" WHEN OTHERS=>NULL; END CASE;WHEN"11"=>FH<="00101101" CASE T IS WHEN"0000"=>TH<="0001"TL<="0110" WHEN&quo

48、t;0001"=>TH<="0001"TL<="0101" WHEN"0010"=>TH<="0001"TL<="0100" WHEN"0011"=>TH<="0001"TL<="0011" WHEN"0100"=>TH<="0001"TL<="0010" WHEN"0101"

49、=>TH<="0001"TL<="0001" WHEN"0110"=>TH<="0001"TL<="0000" WHEN"0111"=>TH<="0000"TL<="1001" WHEN OTHERS=>NULL; END CASE;END CASE;END IF;END PROCESS;PROCESS(RSTN,S,TH,TL,CLK)BEGINIF(RSTN='0&

50、#39;)THEN SH<="0000"SL<="0000"ELSIF(CLK'EVENT AND CLK='0')THEN CASE S IS WHEN"00"=>SH<=TH;SL<=TL;WHEN"01"=>SH<=TH;SL<=TL; WHEN"10"=>SH<="0000"SL<=T;WHEN"11"=>SH<="0000"S

51、L<=T; END CASE;END IF;END PROCESS;END BEHAVIORAL;2.3.2修正模塊仿真波形正溢出波形負溢出波形2.3.3修正模塊電路封裝圖2.3.4修正模塊功能實現(xiàn)對運算中有超過7到7的溢出的結(jié)果進行修正,方便讀取2.4顯示模塊2.4.1顯示模塊VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XIANSHI ISPORT(CLK:IN STD_LOGIC; R0:IN STD

52、_LOGIC_VECTOR(7 DOWNTO 0);R1,R2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); R3,R4,R5:IN STD_LOGIC_VECTOR(7 DOWNTO 0);RS:BUFFER STD_LOGIC; RW:OUT STD_LOGIC; EN:OUT STD_LOGIC; CLK_OUT:BUFFER STD_LOGIC; D:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END XIANSHI;ARCHITECTURE BEHAVIORAL OF XIANSHI ISTYPE XIANSHI IS ARRAY(0

53、TO 31)OF STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL QX:XIANSHI:=(OTHERS=>"00100000");TYPE STATE IS(CLEAR,IDS,DLNF,DCB,DDRAM1,OUTDATA1,DDRAM2,OUTDATA2);SIGNAL COUNT:STD_LOGIC_VECTOR(15 DOWNTO 0);SIGNAL LCLK_OUT:STD_LOGIC;SIGNAL COUNTS:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CURRENT_STATE:STATE;SIG

54、NAL TEMPA:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"BEGINPROCESS(CLK_OUT,CLK)BEGINIF(RISING_EDGE(CLK)THEN COUNTS<=COUNTS+1;IF(COUNTS=3000000)THENCLK_OUT<=NOT CLK_OUT;END IF; END IF;END PROCESS;QX(2)<=R3;QX(3)<=R4;QX(4)<=R5;QX(5)<="00100000"QX(6)<=R0;QX(7)<=&quo

55、t;0011"&R1;QX(8)<="0011"&R2;PROCESS(CLK,LCLK_OUT)BEGINIF(RISING_EDGE(CLK)THEN COUNT<=COUNT+1;IF(COUNT=0)THEN LCLK_OUT<=NOT LCLK_OUT; END IF;END IF;END PROCESS;EN<=LCLK_OUT;PROCESS(LCLK_OUT,CURRENT_STATE) BEGIN IF RISING_EDGE(LCLK_OUT)THEN RS<='0'RW<=&

56、#39;0'CASE CURRENT_STATE ISWHEN CLEAR=> D<="00000001" CURRENT_STATE<=DLNF;WHEN DLNF=> D<="00111000" CURRENT_STATE<=IDS;WHEN IDS=> D<="00000110" CURRENT_STATE<=DCB; WHEN DCB=> D<="00001100" CURRENT_STATE<=DDRAM1;WHEN DDRAM1=>D<="10000000"+TEMPA(3 DOWNTO 0); CURRENT_STATE<=OUT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論