library ieee - 副本_第1頁(yè)
library ieee - 副本_第2頁(yè)
library ieee - 副本_第3頁(yè)
library ieee - 副本_第4頁(yè)
library ieee - 副本_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

1、蝸牛的染色體學(xué)院 電子設(shè)計(jì)自動(dòng)化實(shí)驗(yàn)報(bào)告 姓名:吃一口羊羔肉 學(xué) 號(hào):一口吃羊羔肉 班 級(jí):吃羊羔肉一口 實(shí)驗(yàn)內(nèi)容:多路波形發(fā)生器 指導(dǎo)教師: 羊羔肉吃一口 報(bào)告日期:多路波形發(fā)生器實(shí)驗(yàn)1. 實(shí)驗(yàn)要求1.1.對(duì)輸入時(shí)鐘信號(hào)進(jìn)行分頻,實(shí)現(xiàn)三路互差120度的信號(hào)。1.2.實(shí)現(xiàn)輸出信號(hào)的占空比例控制。其中clk :輸入時(shí)鐘信號(hào);reset:同步復(fù)位信號(hào)(低電平有效);div :輸入分頻控制信號(hào)(6n分頻);ctrl :占空比例控制信號(hào),其中 當(dāng)ctrl=1時(shí),占空比為1:1; 當(dāng)ctrl=2時(shí),占空比為1:2; 當(dāng)ctrl=3時(shí),占空比為2:1;A,B,C:三路輸出信號(hào)。2.設(shè)計(jì)思路2.1 clk

2、:時(shí)鐘輸入,設(shè)置為上升沿觸發(fā);2.2.reset:題目要求同步復(fù)位,故應(yīng)將時(shí)鐘輸入作為reset 觸發(fā)的必要條件。2.3.div :題目要求為6分頻,用二進(jìn)制表示為 (110)2,(1100)2,(100100)2以此類(lèi)推。當(dāng)temp計(jì) 數(shù)是遇到上述數(shù)字便清零重新技術(shù)以實(shí)現(xiàn)6n分 頻。2.4.ctrl :占空比為三種,分別用(01)2,(10)2,(11) 2表示。然后用temp中3位0和1的個(gè)數(shù)比例 來(lái)控制占空比。占空比=1的個(gè)數(shù)/(0的個(gè)數(shù)+1 的個(gè)數(shù)) 又因?yàn)轭}目要求相位角互差120度,即三個(gè)輸出 依次領(lǐng)先前一位4個(gè)輸入字符。即若A(0)=1,則 B(4)=1,C(8)=1。A(0)B(

3、4)C(8)為同相位。2.5.temp: 聲明三個(gè)變量,其中 temp為三位,分別對(duì)應(yīng)于A(yíng),B,C。用于輸出。 temp2與temp3用于計(jì)數(shù)分頻。3. 程序流程圖是時(shí)鐘存在且出現(xiàn)高電平Temp3+1否判斷分頻比DIVReset是否為零是Temp=000否1分頻,temp3在外層DIV=0DIV=16分頻,temp3在內(nèi)層Ctrl=01占空比1:1判斷ctrl占空比1:2Ctrl=10Ctrl=11Ctrl=00占空比2:1直接給04. 源程序一library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use i

4、eee.std_logic_unsigned.all;entity zonghe is port ( clk:in std_logic; aclk:out std_logic; bclk:out std_logic; cclk:out std_logic; resetb:in std_logic; div:in std_logic_vector(1 downto 0); ctrl:in std_logic_vector(1 downto 0) );end zonghe;architecture behave of zonghe issignal tmp:std_logic; signal tm

5、p1:std_logic; signal tmp2:std_logic; signal cnt0:integer range 0 to 5:=0; signal cnt1:integer range 0 to 11:=0; signal cnt2:integer range 0 to 17:=0; signal cnt3:integer range 0 to 23:=0; begin process(clk,resetb,div,ctrl) begin if clk'event and clk='1' then if resetb='0' then cn

6、t0<=0; cnt1<=0; cnt2<=0; cnt3<=0; tmp<='0' tmp1<='0' tmp2<='0' elsif resetb='1' then cnt0<=cnt0+1; cnt1<=cnt1+1; cnt2<=cnt2+1; cnt3<=cnt3+1; case ctrl is when "01"=> case div is when "00"=> case cnt0 is when 0

7、=>tmp<='0'tmp1<='1'tmp2<='0' when 1=>tmp<='0'tmp1<='1'tmp2<='1' when 2=>tmp<='0'tmp1<='0'tmp2<='1' when 3=>tmp<='1'tmp1<='0'tmp2<='1' when 4=>tmp<=

8、9;1'tmp1<='0'tmp2<='0' when 5=>tmp<='1'tmp1<='1'tmp2<='0'cnt0<=0; end case; when "01"=> case cnt1 is when 0=>tmp<='0'tmp1<='1'tmp2<='0' when 1=>tmp<='0'tmp1<='1'

9、tmp2<='0' when 2=>tmp<='0'tmp1<='1'tmp2<='1' when 3=>tmp<='0'tmp1<='1'tmp2<='1' when 4=>tmp<='0'tmp1<='0'tmp2<='1' when 5=>tmp<='0'tmp1<='0'tmp2<='1&

10、#39; when 6=>tmp<='1'tmp1<='0'tmp2<='1' when 7=>tmp<='1'tmp1<='0'tmp2<='1' when 8=>tmp<='1'tmp1<='0'tmp2<='0' when 9=>tmp<='1'tmp1<='0'tmp2<='0' when 10=>

11、;tmp<='1'tmp1<='1'tmp2<='0' when 11=>tmp<='1'tmp1<='1'tmp2<='0'cnt1<=0; end case; when "10"=> case cnt2 is when 0=>tmp<='0'tmp1<='1'tmp2<='0' when 1=>tmp<='0'tmp1<

12、;='1'tmp2<='0' when 2=>tmp<='0'tmp1<='1'tmp2<='0' when 3=>tmp<='0'tmp1<='1'tmp2<='1' when 4=>tmp<='0'tmp1<='1'tmp2<='1' when 5=>tmp<='0'tmp1<='1'tmp

13、2<='1' when 6=>tmp<='0'tmp1<='0'tmp2<='1' when 7=>tmp<='0'tmp1<='0'tmp2<='1' when 8=>tmp<='0'tmp1<='0'tmp2<='1' when 9=>tmp<='1'tmp1<='0'tmp2<='1'

14、; when 10=>tmp<='1'tmp1<='0'tmp2<='1' when 11=>tmp<='1'tmp1<='0'tmp2<='1' when 12=>tmp<='1'tmp1<='0'tmp2<='0' when 13=>tmp<='1'tmp1<='0'tmp2<='0' when 14=&g

15、t;tmp<='1'tmp1<='0'tmp2<='0' when 15=>tmp<='1'tmp1<='1'tmp2<='0' when 16=>tmp<='1'tmp1<='1'tmp2<='0' when 17=>tmp<='1'tmp1<='1'tmp2<='0'cnt2<=0; end case; w

16、hen "11"=> case cnt3 is when 0=>tmp<='0'tmp1<='1'tmp2<='0' when 1=>tmp<='0'tmp1<='1'tmp2<='0' when 2=>tmp<='0'tmp1<='1'tmp2<='0' when 3=>tmp<='0'tmp1<='1'

17、tmp2<='0' when 4=>tmp<='0'tmp1<='1'tmp2<='1' when 5=>tmp<='0'tmp1<='1'tmp2<='1' when 6=>tmp<='0'tmp1<='1'tmp2<='1' when 7=>tmp<='0'tmp1<='1'tmp2<='1&

18、#39; when 8=>tmp<='0'tmp1<='0'tmp2<='1' when 9=>tmp<='0'tmp1<='0'tmp2<='1' when 10=>tmp<='0'tmp1<='0'tmp2<='1' when 11=>tmp<='0'tmp1<='0'tmp2<='1' when 12=&

19、gt;tmp<='1'tmp1<='0'tmp2<='1' when 13=>tmp<='1'tmp1<='0'tmp2<='1' when 14=>tmp<='1'tmp1<='0'tmp2<='1' when 15=>tmp<='1'tmp1<='0'tmp2<='1' when 16=>tmp<=&

20、#39;1'tmp1<='0'tmp2<='0' when 17=>tmp<='1'tmp1<='0'tmp2<='0' when 18=>tmp<='1'tmp1<='0'tmp2<='0' when 19=>tmp<='1'tmp1<='0'tmp2<='0' when 20=>tmp<='1'tm

21、p1<='1'tmp2<='0' when 21=>tmp<='1'tmp1<='1'tmp2<='0' when 22=>tmp<='1'tmp1<='1'tmp2<='0' when 23=>tmp<='1'tmp1<='1'tmp2<='0'cnt3<=0; end case; end case; when "10&

22、quot;=> case div is when "00"=> case cnt0 is when 0=>tmp<='0'tmp1<='1'tmp2<='0' when 1=>tmp<='0'tmp1<='1'tmp2<='0' when 2=>tmp<='0'tmp1<='0'tmp2<='1' when 3=>tmp<='0&

23、#39;tmp1<='0'tmp2<='1' when 4=>tmp<='1'tmp1<='0'tmp2<='0' when 5=>tmp<='1'tmp1<='0'tmp2<='0'cnt0<=0; end case; when "01"=> case cnt1 is when 0=>tmp<='0'tmp1<='1'tmp2

24、<='0' when 1=>tmp<='0'tmp1<='1'tmp2<='0' when 2=>tmp<='0'tmp1<='1'tmp2<='0' when 3=>tmp<='0'tmp1<='1'tmp2<='0' when 4=>tmp<='0'tmp1<='0'tmp2<='1'

25、 when 5=>tmp<='0'tmp1<='0'tmp2<='1' when 6=>tmp<='0'tmp1<='0'tmp2<='1' when 7=>tmp<='0'tmp1<='0'tmp2<='1' when 8=>tmp<='1'tmp1<='0'tmp2<='0' when 9=>tmp&

26、lt;='1'tmp1<='0'tmp2<='0' when 10=>tmp<='1'tmp1<='0'tmp2<='0' when 11=>tmp<='1'tmp1<='0'tmp2<='0'cnt1<=0; end case; when "10"=> case cnt2 is when 0=>tmp<='0'tmp1<=&#

27、39;1'tmp2<='0' when 1=>tmp<='0'tmp1<='1'tmp2<='0' when 2=>tmp<='0'tmp1<='1'tmp2<='0' when 3=>tmp<='0'tmp1<='1'tmp2<='0' when 4=>tmp<='0'tmp1<='1'tmp2<

28、;='0' when 5=>tmp<='0'tmp1<='1'tmp2<='0' when 6=>tmp<='0'tmp1<='0'tmp2<='1' when 7=>tmp<='0'tmp1<='0'tmp2<='1' when 8=>tmp<='0'tmp1<='0'tmp2<='1' wh

29、en 9=>tmp<='0'tmp1<='0'tmp2<='1' when 10=>tmp<='0'tmp1<='0'tmp2<='1' when 11=>tmp<='0'tmp1<='0'tmp2<='1' when 12=>tmp<='1'tmp1<='0'tmp2<='0' when 13=>tmp

30、<='1'tmp1<='0'tmp2<='0' when 14=>tmp<='1'tmp1<='0'tmp2<='0' when 15=>tmp<='1'tmp1<='0'tmp2<='0' when 16=>tmp<='1'tmp1<='0'tmp2<='0' when 17=>tmp<='1&

31、#39;tmp1<='0'tmp2<='0'cnt2<=0; end case; when "11"=> case cnt3 is when 0=>tmp<='0'tmp1<='1'tmp2<='0' when 1=>tmp<='0'tmp1<='1'tmp2<='0' when 2=>tmp<='0'tmp1<='1'tmp2

32、<='0' when 3=>tmp<='0'tmp1<='1'tmp2<='0' when 4=>tmp<='0'tmp1<='1'tmp2<='0' when 5=>tmp<='0'tmp1<='1'tmp2<='0' when 6=>tmp<='0'tmp1<='1'tmp2<='0'

33、 when 7=>tmp<='0'tmp1<='1'tmp2<='0' when 8=>tmp<='0'tmp1<='0'tmp2<='1' when 9=>tmp<='0'tmp1<='0'tmp2<='1' when 10=>tmp<='0'tmp1<='0'tmp2<='1' when 11=>tm

34、p<='0'tmp1<='0'tmp2<='1' when 12=>tmp<='0'tmp1<='0'tmp2<='1' when 13=>tmp<='0'tmp1<='0'tmp2<='1' when 14=>tmp<='0'tmp1<='0'tmp2<='1' when 15=>tmp<='0

35、'tmp1<='0'tmp2<='1' when 16=>tmp<='1'tmp1<='0'tmp2<='0' when 17=>tmp<='1'tmp1<='0'tmp2<='0' when 18=>tmp<='1'tmp1<='0'tmp2<='0' when 19=>tmp<='1'tmp1<

36、;='0'tmp2<='0' when 20=>tmp<='1'tmp1<='0'tmp2<='0' when 21=>tmp<='1'tmp1<='0'tmp2<='0' when 22=>tmp<='1'tmp1<='0'tmp2<='0' when 23=>tmp<='1'tmp1<='0'

37、;tmp2<='0'cnt3<=0; end case; end case; when "11"=> case div is when "00"=> case cnt0 is when 0=>tmp<='0'tmp1<='1'tmp2<='1' when 1=>tmp<='0'tmp1<='1'tmp2<='1' when 2=>tmp<='1'

38、tmp1<='0'tmp2<='1' when 3=>tmp<='1'tmp1<='0'tmp2<='1' when 4=>tmp<='1'tmp1<='1'tmp2<='0' when 5=>tmp<='1'tmp1<='1'tmp2<='0'cnt0<=0; end case; when "01"=>

39、case cnt1 is when 0=>tmp<='0'tmp1<='1'tmp2<='1' when 1=>tmp<='0'tmp1<='1'tmp2<='1' when 2=>tmp<='0'tmp1<='1'tmp2<='1' when 3=>tmp<='0'tmp1<='1'tmp2<='1' whe

40、n 4=>tmp<='1'tmp1<='0'tmp2<='1' when 5=>tmp<='1'tmp1<='0'tmp2<='1' when 6=>tmp<='1'tmp1<='0'tmp2<='1' when 7=>tmp<='1'tmp1<='0'tmp2<='1' when 8=>tmp<=

41、'1'tmp1<='1'tmp2<='0' when 9=>tmp<='1'tmp1<='1'tmp2<='0' when 10=>tmp<='1'tmp1<='1'tmp2<='0' when 11=>tmp<='1'tmp1<='1'tmp2<='0'cnt1<=0; end case; when "1

42、0"=> case cnt2 is when 0=>tmp<='0'tmp1<='1'tmp2<='1' when 1=>tmp<='0'tmp1<='1'tmp2<='1' when 2=>tmp<='0'tmp1<='1'tmp2<='1' when 3=>tmp<='0'tmp1<='1'tmp2<=&#

43、39;1' when 4=>tmp<='0'tmp1<='1'tmp2<='1' when 5=>tmp<='0'tmp1<='1'tmp2<='1' when 6=>tmp<='1'tmp1<='0'tmp2<='1' when 7=>tmp<='1'tmp1<='0'tmp2<='1' when 8

44、=>tmp<='1'tmp1<='0'tmp2<='1' when 9=>tmp<='1'tmp1<='0'tmp2<='1' when 10=>tmp<='1'tmp1<='0'tmp2<='1' when 11=>tmp<='1'tmp1<='0'tmp2<='1' when 12=>tmp<=

45、'1'tmp1<='1'tmp2<='0' when 13=>tmp<='1'tmp1<='1'tmp2<='0' when 14=>tmp<='1'tmp1<='1'tmp2<='0' when 15=>tmp<='1'tmp1<='1'tmp2<='0' when 16=>tmp<='1't

46、mp1<='1'tmp2<='0' when 17=>tmp<='1'tmp1<='1'tmp2<='0'cnt2<=0; end case; when "11"=> case cnt3 is when 0=>tmp<='0'tmp1<='1'tmp2<='1' when 1=>tmp<='0'tmp1<='1'tmp2<

47、='1' when 2=>tmp<='0'tmp1<='1'tmp2<='1' when 3=>tmp<='0'tmp1<='1'tmp2<='1' when 4=>tmp<='0'tmp1<='1'tmp2<='1' when 5=>tmp<='0'tmp1<='1'tmp2<='1' whe

48、n 6=>tmp<='0'tmp1<='1'tmp2<='1' when 7=>tmp<='0'tmp1<='1'tmp2<='1' when 8=>tmp<='1'tmp1<='0'tmp2<='1' when 9=>tmp<='1'tmp1<='0'tmp2<='1' when 10=>tmp<

49、='1'tmp1<='0'tmp2<='1' when 11=>tmp<='1'tmp1<='0'tmp2<='1' when 12=>tmp<='1'tmp1<='0'tmp2<='1' when 13=>tmp<='1'tmp1<='0'tmp2<='1' when 14=>tmp<='1'

50、tmp1<='0'tmp2<='1' when 15=>tmp<='1'tmp1<='0'tmp2<='1' when 16=>tmp<='1'tmp1<='1'tmp2<='0' when 17=>tmp<='1'tmp1<='1'tmp2<='0' when 18=>tmp<='1'tmp1<=

51、9;1'tmp2<='0' when 19=>tmp<='1'tmp1<='1'tmp2<='0' when 20=>tmp<='1'tmp1<='1'tmp2<='0' when 21=>tmp<='1'tmp1<='1'tmp2<='0' when 22=>tmp<='1'tmp1<='1'tmp2

52、<='0' when 23=>tmp<='1'tmp1<='1'tmp2<='0'cnt3<=0; end case; end case; when "00"=>tmp<='0'tmp1<='0'tmp2<='0' end case; end if; end if; end process; aclk<=tmp; bclk<=tmp1; cclk<=tmp2;end behave;7源程

53、序二library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity waveform isport (clk,reset,div : in std_logic;ctrl : in std_logic_vector(1 downto 0);a,b,c : out std_logic);end entity waveform;architecture one of waveform isbegin process(clk,reset,div,ctrl)variable temp : std_logic_

54、vector(2 downto 0);variable temp2,temp3: std_logic_vector(3 downto 0); begin if clk'event and clk='1' then temp3:=temp3+1; if reset='0' then temp:="000" elsif div='1' then if temp3="0110" then temp3:="0000" temp2:=temp2+1;if temp2="1100&

55、quot; then temp2:="0000"end if; end if; end if; if div='0' then temp2:=temp2+1; if temp2="1100" then temp2:="0000"end if;if temp3="0110" then temp3:="0000"end if; end if; if ctrl="01" then case temp2 iswhen "0000" =>temp:="101"when "0001" =>temp:="101"when "0010" =>temp:="001"when "0011" =>temp:="001"when "

溫馨提示

  • 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)論