《電子設(shè)計(jì)自動(dòng)化技術(shù)》EDA實(shí)訓(xùn)指導(dǎo)書(shū).doc_第1頁(yè)
《電子設(shè)計(jì)自動(dòng)化技術(shù)》EDA實(shí)訓(xùn)指導(dǎo)書(shū).doc_第2頁(yè)
《電子設(shè)計(jì)自動(dòng)化技術(shù)》EDA實(shí)訓(xùn)指導(dǎo)書(shū).doc_第3頁(yè)
《電子設(shè)計(jì)自動(dòng)化技術(shù)》EDA實(shí)訓(xùn)指導(dǎo)書(shū).doc_第4頁(yè)
《電子設(shè)計(jì)自動(dòng)化技術(shù)》EDA實(shí)訓(xùn)指導(dǎo)書(shū).doc_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

28電子設(shè)計(jì)自動(dòng)化技術(shù)實(shí)訓(xùn) csh csh 前 言eda是電子設(shè)計(jì)自動(dòng)化(electronic design automation)的縮寫(xiě),在20世紀(jì)90年代初從計(jì)算機(jī)輔助 設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測(cè)試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來(lái)的。eda技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在eda軟件平臺(tái)上,用硬件描述語(yǔ)言hdl完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。eda技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可靠性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。vhdl是一門(mén)非常重要的、是目前標(biāo)準(zhǔn)化程度最高的硬件描述語(yǔ)言。它在1987年就被ieee采納為ieee#1076標(biāo)準(zhǔn)。用其書(shū)寫(xiě)的源文件既是程序又是文檔,既是工程技術(shù)員之間交換信息的文件,以可作為合同簽約者之間的文件。 在電子設(shè)計(jì)自動(dòng)化技術(shù)課程的理論學(xué)習(xí)中,我們已仔細(xì)地介紹了基本數(shù)字電路的vhdl描述,為進(jìn)一步掌握vhdl的綜合應(yīng)用,通過(guò)專(zhuān)門(mén)實(shí)訓(xùn)周以加強(qiáng)實(shí)踐操作能力。本次實(shí)訓(xùn)現(xiàn)提供以上幾個(gè)數(shù)字系統(tǒng)綜合課題供大家進(jìn)行分析 練習(xí) 修改與礦。為了提高分析 實(shí)踐效果,在此只提供簡(jiǎn)單的課題框圖與注釋作為提示。同時(shí)將vhdl源代碼給出以便對(duì)照調(diào)試之用。 課題1 帶數(shù)字顯示的秒表一、 設(shè)計(jì)任務(wù)及要求1、 設(shè)計(jì)一塊用數(shù)碼管顯示的秒表。2、 能夠準(zhǔn)確的計(jì)時(shí)并顯示。3、 開(kāi)機(jī)顯示00.00.00。4、 用戶(hù)可隨時(shí)清零、暫停、計(jì)時(shí)。5、 最大計(jì)時(shí)59分鐘,最小精確到0.01秒。二、 可選器件epm130208-2、共陰極七段數(shù)碼管、發(fā)光二極管、按鍵開(kāi)關(guān)、電阻、電容。三、 設(shè)計(jì)總體框圖 數(shù)字顯示器的秒表總體框圖如圖1所示。譯碼顯示時(shí)分復(fù)用分頻電路時(shí)鐘輸入計(jì)時(shí)模塊 圖1帶數(shù)字顯示的秒表總體框圖四、 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity watch isport (sel:out std_logic_vector(6downto1); 信號(hào)。seg:out std_logic_vector(7downto 0); 管的輸出信號(hào)。beginstop:in std_logic;、停止計(jì)數(shù)。reset:in std_logic; 復(fù)位 cp2:in std_logic);end watch; architecture behave of watch is signal numl:std_logic_vector(3downto0); signal num2:std_logic_vector(3downto 0); signal num3:std_logic_vector (3 downto 0); signal num4:std_logic_vector (3 downto 0); signal num5:std_logic_vector(3 downto 0); signal num6:std_logic_vector(3 downto 0); signal num: std_logic_vector(3 downto 0); signal numlet:std_logic_vector(2 downto 0); signal count:std_logic_vector( 17 downto 1); signal selsig:std_logic_vector(6 downto 1); signal segsig:std_logic_vector(7 downto 0);signal cp1:std_logic;signal cp3:std_logic;beginprocess(cp2)分頻。beginif(cp2event and cp2=1)thenif(count=”11000011010011111”)then count=”00000000000000000”;cp1=not cp1; else count=count+1;end if;end if; cp3=count(10);end process;process(cp1)計(jì)數(shù)控制。beginif reset=1 then num1(3downto 0)=”0000”; num2(3downto 0)=”0000”; num3(3downto 0)=”0000”; num4(3downto 0)=”0000”; num5(3downto 0)=”0000”; num6(3downto 0)=”0000”; else if cp1event and cp1=1 thenif biginstop=1 then num1=num1+1;if num1(3downto 0)=”1001” thennum1 (3downto 0)=”0000”;num2=num2+1;if num2(3downto 0)=”1001” thennum2(3 downto 0)=”0000”;num3=num3+1;if num3(3downto 0)=”1001” thennum3(3downto 0)=”0000”;unm4=num4+1;if num4(3downto 0)=”0101”thennum4(3downto0)=”0000”;num5=num5+1;if num5(3downto 0)=”1001” thennum5(3downto 0)=”0000” ;num6=num6+1;if num6(3downto 0)=”0101”thennum6(3downto0)=”0000”;end if ;end if; end if; end if; end if;end if;end if;end if;end if;end process;process(cp3)顯示控制。begin if(cp3event and cp3=1)thenif(numlet(2downto0)=”000”)thennum=numl;selsig(6downto1)=”111110”;end if;if(numlet(2downto0)=”001”)thennum=num2;selsig(6downto1)=”111101”;end if;if(numlet(2downto0)=”010”thennum=num3;selsig(6downto1)=”111011”;end if;if(numlet(2downto 0)=”100”;thennum=num4;selsig(6downto1)=”110111”;end if;if(numlet(2downto0)=”100” thennum=num5;selsig(6downto1)=”101111”;end if;numlet(2downto 0)=numlet(2downto 0)+1;if(numlet(2downto0)=”101”thennumlet(2downto 0)=”000”;num=num6;selsig(6downto1)=”011111”;end if;end if;if(num(3downto0)=”0000”)thensegsig(7downto 0)=”01111111”;end if;end if;if(num(3downto0)=”0001”)thensegsig(7downto0)=”00001101”;end if;if(num(3downto0)=”0010”)thensegsig(7downto 0)=”10011111”;end if;if(num(3downto0)=”0100”)thensegsig(7downto0)=”10011111”;end if;if(num(3downto0)=”0100”)thensegsig(7downto0)=”11001101”;end if;if(num(3downto)=”0101”)then segsig(7downto0)=”11011011”;end if;if(num(3downto0)=”0110”)thensegsig(7downto0)=”11111011”;end if;if(num(3downto0)=”0111”;)thensegsig(7downto0)=”00001111”;end if;if(num(3downto0)=”1000”)thensegsig(7downto0)=”11111111”;end if;if(num(3downto0)=”1001”)thensegsig(7downto0)=”11011111”;end if;end process;sel=selsig;seg(7downto0)=segsig(7downto0);end behave;五、 程序說(shuō)明1、 此程序包括分頻、計(jì)數(shù)控制、顯示控制部分。2、 開(kāi)機(jī)顯示00.00.00,用戶(hù)可隨時(shí)計(jì)時(shí)、暫停、清零,最大計(jì)時(shí)可到59分59.99秒。3、 計(jì)數(shù)時(shí)鐘為100hz。4、 采用時(shí)分復(fù)用的方法控制4個(gè)數(shù)碼管的顯示,可節(jié)約資源。 課題2 88光點(diǎn)陣逐點(diǎn)掃描顯示裝置一、 設(shè)計(jì)任務(wù)要求1. 使用88矩陣顯示屏設(shè)計(jì)一個(gè)掃描控制電路。2. 光點(diǎn)從屏左上角像素點(diǎn)開(kāi)始逐點(diǎn)掃描,終止與右下角像素點(diǎn),然后周而復(fù)始的運(yùn)行下去。3. 掃描一楨所需時(shí)間為13s。二、 可選器件epm130208-2、8x8矩陣顯示屏、電阻。三、 設(shè)計(jì)總體框圖8x8發(fā)光點(diǎn)陣逐點(diǎn)掃描顯示裝置總體框圖如圖2所示。時(shí)鐘輸 入列控制電 路分頻電 路行控制電 路8x8矩陣顯示屏圖2 8x8發(fā)光點(diǎn)陣逐點(diǎn)掃描顯示裝置總體框圖四、 參考源程序 library ieee; use ieee.std_logic_1164.all;use ieee.std_logicsigned.all;entity zlx2 isport( clk:in std_logic;q:out std_logic_vector(21 downto0);路輸出。t:out std_logic_vector(0to7); 列選通。y:out std_logic_vector(0to7); 行選通。 ebd zkx2larchitecture a of zlx2 is signal b:std_logic_vector(21downto 0):=”0000000000000000000000”; signal a:std_logic_vector(0to 2); signal e:std_logic_vector(0to2); signal c:std_logic_vector(0to7); signal d:std_logic_vector(0to7);beginprocess (clk) 分頻電路。begin if(clkevent and clk =1)then b(21downto 0)=b(21downto)+1;end if;q=b; 輸出掃描頻率。end process;process 以下兩個(gè)進(jìn)程控制行、列選通線實(shí)現(xiàn)點(diǎn)掃描。begina(0)=b(16);a(1)=b(17);a(2)=b(18);if a=”000”then c=”10000000”;elsif a=”001”then c=”01000000”;elsif a=”010”then c=”00100000”;elsif a=”011”then c=”00010000”;elsif a=”100”then c=”00001000”;elseif a=”101”then c=”00000100”;elseif a=”110”then c=”00000010”;elseif a=”111”then c=00000001”;end if;y=c;end process;processbegine(0)=b(19);e(1)=b(20);e(2)=b(21);if e=”000”then d=”01111111”;elsif e=”001”then d=”10111111”;elsif e=”010”then d=”11011111”;elsif e=”011”then d=”11101111”;elsif e=”100”then d=”11110111”;elsif e=”101”then d=”11111011”;elsif e=”110”then d=”11111101”;elsif e=”111”then d=”11111110”;end if;t=d;end process;end a;五、 說(shuō)明1. 程序主要由分頻電路和掃描控制電路組成。2. 掃描控制電路可用3線-8線譯碼器的設(shè)計(jì)思路來(lái)實(shí)現(xiàn)。課題3 彩燈閃爍裝置一、 設(shè)計(jì)任務(wù)及要求1. 使用8x8矩陣顯示屏設(shè)計(jì)一個(gè)彩燈閃爍裝置。2. 第一偵以1個(gè)光點(diǎn)為1個(gè)像素點(diǎn)從屏左上角開(kāi)始逐點(diǎn)掃描,終止于右下角。3. 第二偵以2個(gè)光點(diǎn)為1個(gè)像素從左上角開(kāi)始逐點(diǎn)掃描,終止于右下角。4. 第三偵重復(fù)第一偵,第四偵重復(fù)第二偵,周而復(fù)始的運(yùn)行下去。二、 可選器件epm130208-2、8x8矩陣顯示屏、電阻??刂?奇 偶 偵8x8矩陣顯示屏三、 設(shè)計(jì)總體框圖時(shí)鐘輸入分頻電路列控制電路行控制電路彩燈閃爍裝置總體框圖如圖3所示。圖3 彩燈閃爍裝置總體框圖四、 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;-for+operation.entity scan2 isport(cp1:in std_logic;輸入時(shí)鐘20mhz。 ho:out std_logic_vector(7downto0);行控制信號(hào)。 vo:out std_logic_vector(7downto0);列控制信號(hào)。end scan2;architecture scanpixel of scan2 issignal count1:std_logic_vector(2downto0):=”000”;掃描哪一個(gè)點(diǎn)的計(jì)數(shù)器。signal cuont2:std_logic_vector(3downto0):=”0000”;掃描哪一個(gè)行的計(jì)數(shù)器。signal v:std_logic_vector(7downto0):=”10000000”;signal h:std_logic_vector(7downto0):=”10000000”;輸出信號(hào).signal cp2:std_logic;signal cp:std_logic;signal cnt:std_logic_vector(15downto0):=”0000000000000000”signal cnt2:std_logic_vector(5downto0):=”000000”;分頻用的計(jì)數(shù)器。beginprocess(cp1)begin if (cp1eventand cp1=1)thencnt=cnt+1;end if;cp2=cnt(15);end process;process(cp2)beginif(cp2event and cp2=1)thencnt2=cnt2+1;end if;cp=cnt2+1;end if;cphhhhhhhhh=”00000000”;end case;if count2=”0111”then 如果掃描的是前8行,則逐行掃描。 count1vvvvvvvvv=”11111111”; end case;if count2=”111”then count2=count2+1;end if;掃描完一行行計(jì)數(shù)器加1。else 若掃描的是后8行,則2點(diǎn)到掃描。 if count1=”010”then count1=”111”;else count1vvvvv=”11111111”;end case;if count1(1downto0)=”11”then count2=count2+1;end if;掃描完一行,行計(jì)數(shù)器加1。end if;end if;ho=h;vo=v;end process;end scanpixel;五、 程序說(shuō)明 此程序主要由分頻電路,行,列控制電路組成。 課題4 搶答器一、 設(shè)計(jì)任務(wù)及要求 設(shè)計(jì)2人搶答器。要求如下:1. 兩人搶答,先搶為有效,用發(fā)光二極管顯示是否搶到優(yōu)先答題權(quán)。2. 每人2為計(jì)分顯示,答錯(cuò)了不加分,答對(duì)了可加10、20、30分。3. 每題結(jié)束后,裁判按復(fù)位,可重新?lián)尨鹣乱活}。4. 累計(jì)加分可由裁判隨時(shí)清零。二、 可選器件epm130208-2、共陰極七段數(shù)碼管,按鍵開(kāi)關(guān)、電阻、電容。三、 設(shè)計(jì)總體框圖搶答器總體框圖如圖4所示。顯示搶答指示燈加分電路搶答者1輸入搶答者2輸入顯示加分結(jié) 果裁判復(fù)位重新?lián)尨鸩门屑?分搶 答判 斷裁判清 零 圖4 搶答器總體框四、 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity qb isport(i1,i2:in bit;搶答器兩輸入端。 reset: in bit;搶答器復(fù)位端。g10,g10,g30:in bit;加分輸入端10分、20分、30分。light1,light2:out bit:=0;搶答標(biāo)志燈。tll:out std_logic_vector(6downto0):=”0111111”;“tl1、tl2”,顯示第一個(gè)人得分。tl2:out std_logic_vector(6downto0):=”0111111”;t21:out std_logic_vector(6downto0):=”0111111”;“t21t22”顯示第二個(gè)人得分。clk:in bit;時(shí)鐘輸入端。cong:in bit 清零控制端。); end qb;architecture stru of qb issignal cs1:integer range0to9;sitgnal cs2:integer range 0to9:signal a,b:bit:=0;signall1,l2:bit:=0;begin process(clk)beginif clkevent and clk =1 thenif(cong=1)thenif(reset=1)thenif(i1=0and a=0)then l1=1;a=1;搶答。elsif (i2=”0and a=0) then l2=1; a=1;end if; if(g10=0and l1=1and b=0)then cs1=cs1+1;b=1;elsif(g20=0and l1=1and b=0)then cs1=cs1+2;b=1;elsif(g30=0and l1=1and b=0)then cs1=cs1+2;b=1; end if 完成第一人的加分。 if(cs1=0)then tl1=”0111111”;顯示。 elsif (cs1=1)then t11=”0000110”; elsif (cs1=2)then t11=”1011011”; elsif (cs1=3)then t11=”100111”;elsif (cs1=4)then t11=”1100110”;elsif (cs1=5)then t11=”1101101”;elsif(cs1=6)then t11=”1111101”;elsif (cs1=7)then t11=”0000111”;elsif (cs1=8)then t11=”1111111”;elsif (cs1=9)then t11=”1101111”;end if;if (cs20)then t21=”0111111”;elsif (cs2=1)then t21=”0000110”;elsif(cs2=2)then t21=”1011011”;elsif(cs2=3)then t21=”1001111”;elsif(cs2=4)then t21=”1100110”;elsif(cs2=5)then t21=”1101101”;elsif(cs2=6)then t21=”1111101”;elsif(cs2=7)then t21=”0000111”;elsif(cs2=8)then t21=”1111111”;elsif(cs2=9)then t21=”1101111”;end if;else l1=0;l2=0;a=0;b=0;end if;elde cs1=0;cs2=0;l1=0;l2=0;end if;end process;end stru;五、 程序說(shuō)明1. 此程序由3部分組成,即搶答、加分、顯示。2. 當(dāng)一人搶到優(yōu)先答題權(quán),發(fā)光二極管亮,另一人再按按鍵無(wú)效。答題結(jié)束后,裁判按復(fù)位鍵,可再次搶答。3. 每人有兩個(gè)數(shù)碼管顯示累加計(jì)分情況,分?jǐn)?shù)分為3檔,用按鍵來(lái)區(qū)別。課題5 密碼鎖一、 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一個(gè)兩位的密碼鎖,要求如下:1. 開(kāi)鎖代碼為2位十進(jìn)制并行碼。2. 當(dāng)輸入的密碼與鎖內(nèi)的密碼一致時(shí),綠燈亮,開(kāi)鎖;當(dāng)輸入的密碼與鎖內(nèi)的密碼不一致時(shí),紅燈亮,不能開(kāi)鎖。3. 密碼可由用戶(hù)自行設(shè)置。二、 可選器件epm130208-2、共陰極七段數(shù)碼管、發(fā)光二極管、按鍵開(kāi)關(guān)、電阻、電容。三、 設(shè)計(jì)總體框圖密碼鎖總體框圖如圖5所示ccn密 碼檢 測(cè)數(shù) 據(jù)輸 入譯 碼顯 示數(shù) 據(jù)寄 存密 碼存儲(chǔ)儀判 斷開(kāi) 鎖指 示 燈指 示 燈 圖5 密碼鎖總體框圖四、 源程序 library ieee; use ieee.std_logic_signed.all;entity lock isport(a:in std_logic_vector(9downto0);十位輸入端。 b:in std_logic_vector(9downto0);個(gè)位輸入端。en,clk:in std_logic;en為密碼確認(rèn)開(kāi)關(guān)。 en1:in std_logic;en1為密碼檢驗(yàn)開(kāi)關(guān)。c,d:out std_logic_vector(6downto0):=”0111111”;輸出七段數(shù)碼管的控制。k,m:out std_logic);k為綠燈,m為紅燈。end lock;architecture behave of lock issignal e:std_logic_vector(3downto0);signal f: std_logic_vector (3downto0);signal g:std_logic_vector(3downto0);signal h:std_logic_vector(3downto0);signal count1,count2,:std_logic:=0signal s:std_logic:=0;begin if (a(9downto0)=”0000000000”)then c(6downto0)=”0111111”;elsif (a(1)=1) thene=”0000”;c(6downto0)=”0111111”;elsif(a(1)=1)thene=”0001”;c(6downto0)=”0000110”;elsif(a(2)=1)thene=”0010”;c(6downto0)=”1011011”;elsif(a(3)=1)thene=”0011”;c(6downto0)=”1001111”;elsif (a(4)=1) thene=”0100”;c(6downto0)=”1100110”;elsif (a(5)=1) thene=”0101”;c(6downto0)=”1101101”;elsif(a(6)=1) thene=”0110”;c(6downto0)=”1111100”;elsif(a(7)=1) thene=”0111”;c(6downto0)=”0000111”;elsif(a(8)=1) thene=”1000”;c(6downto0)=”1111111”;elsif(a(9)=1) thene=”1001”;c(6downto0)=”1100111”;end if;end process;process(b,f)個(gè)位的數(shù)據(jù)轉(zhuǎn)換。beginif(b(9downto0)=”00000000000” thend(6downto0)=”0111111”;elsif(b(0)=1) thenf=”0000”;d(6downto0)=”0111111”;elsif(b(1)=1)thenf=”0001”;d(6downto0)=0000100”;elsif(b(2)=1;thenf=”0010”;d(6downto0)=”1011011”;elsif(b(3)=1) thenf=”0011”;d(6downto0)=”1001111”;elsif(b(4)=1) thenf=”0100”;d(6downto0)=”1100110”;elsif(b(5)=1) thenf=”0101”;d(6downto0)=”1101101”;elsif(b(6)=1) thenf=”0110”; d(downto0)=”1111100”;elsif(b(7)=1)thenf=”0111”;d(6downto0)=”0000111”;elsif(b(8)=1) thenf=”1000”;d(6downto0)=”1111111”;elsif(b(9)=1) thenf=”1001”;d(6downto0)=”1100111”;end if;end process;process(clk)判斷密碼是否正確,可否開(kāi)鎖。beginif(s=1)and(en=1)and(count=0) theng(3downto0)=e(3downto0);h(3downto0)=f(3downto0);count1=not(count1);end if;if(en1=1)and(count2=0) thenif(e(3downto0)=g(3downto0)andf(3downto0)=h(3downto0) thenk=1;s=1;elsek=0;m=1;end if;if (en=0)and(en1=0) thencount1=0;count2=0;k=0;s=0;m=0;end if;if(en=0 and s=1) thencount1=0;end if;end process;end behave;五、 程序說(shuō)明1. 此程序由解碼、譯碼、數(shù)碼管顯示部分組成。2. 此程序是一個(gè)并行密碼鎖,用戶(hù)開(kāi)鎖密碼為00。當(dāng)使用開(kāi)鎖密碼后,指示燈亮(綠燈),表示鎖被打開(kāi)。用戶(hù)可自行設(shè)置密碼。用戶(hù)可用2個(gè)dip開(kāi)關(guān)(110)設(shè)置099的2位十進(jìn)制數(shù)密碼。 課題6 數(shù)字頻率計(jì)一、 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一個(gè)4位十進(jìn)制數(shù)字顯示的數(shù)字式頻率計(jì)。要求如下:1 4位十進(jìn)制數(shù)字顯示的數(shù)字顯示的數(shù)字式頻率計(jì),其頻率測(cè)量范圍為109999khz,測(cè)量單位為khz。2 要求量程能夠自動(dòng)轉(zhuǎn)換。(即測(cè)幾十到幾百千赫茲(khz)時(shí),有小數(shù)點(diǎn)顯示,前者顯示小數(shù)點(diǎn)后兩位,后者顯示小數(shù)點(diǎn)后一位。)3 當(dāng)輸入的信號(hào)小于10khz時(shí),輸出顯示全0;當(dāng)輸入的信號(hào)大于9999khz時(shí),輸出顯示全h。二、 可選器件epm130208-2、共陰極七段數(shù)碼管、按鍵開(kāi)關(guān)、電阻、電容。三、 設(shè)計(jì)總體框圖數(shù)字頻率計(jì)總體框圖如圖6所示。復(fù)位譯碼顯 示復(fù)位被測(cè)信號(hào)計(jì)數(shù)電路鎖存器時(shí)分復(fù)用時(shí)鐘輸 入分頻電 路圖6 數(shù)字頻率計(jì)總體框圖四、 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity total isport (cp_20m:in std_logic; enable:in std_logic; input:in std_logic; reset:in std_logic; sel:out std_logic_vector( 3 downto 0); show:out std_logic_vector(6 downto 0); decimal:out std_logic_vector(2 downto 0);end total;architecture content of total issignal cp_1,cp_2,cp_3:std_logic;signal reset_1:std_logic;signal overflow_1,low_1:std_logic;signal play0_1,play1_1,play2_1,play3_1:integer range 0 to 9;signal overlatch_1,lowlatch_1:std_logic;signal p0latch_1,p1latch_1,p2latch_1:integer range 0 to 9;signal decimal_1:std_logic_vector(2 downto 0);component dividefre4 isport(cp_20m:in std_logic; cp1:out std_logic; cp2:out std_logic; cp3:out std_logic);end component;component debounce isport(key:in std_logic; cp:in std_logic; imp:out std_logic);end component;component fretest isport(enable,cp3,input,reset:in std_logic; overflow,low:out integer range 0 to 9; decimal:out std_logic_vector(2 downto 0) );end component;component frelatch isport( reset:in std_logic; cp3:in std_logic; overflow:in std_logic; low:in std_logic; play0,play1,play2,play3:in integer range 0 to 9; decimal:in std_logic_vector(2 downto 0); overlatch:out std_logic; lowlatch:out std_logic; p0latch,p1latch,p2latch,p3latch:out integer range 0 to 9; delatch:out std_logic_vector(2 downto 0) );end component;component display isport(cp1:in std_logic; low:in std_logic; overflow:in std_logic; p0,p1,p2,p3:in integer range 0 to 9; show:out std_logic_vector(6 downto 0); sel:out std_logic_vector(3 downto 0) );end component;beginu1:dividefre4 port map(cp_20m,cp_1,cp_2,cp_3);u2:debounce port map(reset,cp_2,reset_1);u3:fretest port map(enable,cp_3,input,reset_1,overflow_1,low_1,play0_1,play1_1,play2_1,play3_1,decimal_1);u4:frelatch port map(reset_1,cp_3,overflow_1,low_1,play0_1,play1_1,play2_1,play3_1,decimal_1,overlatch_1,lowlatch_1,p0latch_1,platch_1,p2latch_1p3latch_1decimal);u5:display port map(cp_1,lowlatch_1,overlatch_1,p0latch_1,p1latch_1,p2latch_1,p3latch_1,show,sel);end content;library ieee;use ieee.

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論