2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  1 緒論</b></p><p>  1.1 EDA 技術(shù)概論</p><p>  EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言VHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電

2、路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。這些器件可以通過(guò)軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過(guò)程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。</p><p>  1.2 硬件描述語(yǔ)言V

3、HDL</p><p>  1.2.1 VHDL簡(jiǎn)介</p><p>  VHDL全名Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。VHDL語(yǔ)言是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言。它在80年代的后期出現(xiàn)。最初是由美國(guó)國(guó)防部開(kāi)發(fā)出來(lái)供美軍用來(lái)提高設(shè)計(jì)的可靠性和縮減開(kāi)發(fā)周期的一種使用范圍較小的設(shè)

4、計(jì)語(yǔ)言 。 </p><p>  VHDL翻譯成中文就是超高速集成電路硬件描述語(yǔ)言,主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國(guó)的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來(lái)設(shè)計(jì)ASIC。 </p><p>  1.2.2 VHDL 的流程設(shè)計(jì)</p><p>  從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計(jì)的內(nèi)容細(xì)化

5、,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。在設(shè)計(jì)的過(guò)程中,對(duì)系統(tǒng)自上而下分成三個(gè)層次進(jìn)行設(shè)計(jì):</p><p>  第一層次是行為描述。所謂行為描述,實(shí)質(zhì)上就是對(duì)整個(gè)系統(tǒng)的數(shù)學(xué)模型的描述。一般來(lái)說(shuō),對(duì)系統(tǒng)進(jìn)行行為描述的目的是試圖在系統(tǒng)設(shè)計(jì)的初始階段,通過(guò)對(duì)系統(tǒng)行為描述的仿真來(lái)發(fā)現(xiàn)設(shè)計(jì)中存在的問(wèn)題。在行為描述階段,并不真正考慮其實(shí)際的操作和算法用何種方法來(lái)實(shí)現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過(guò)程是否能到達(dá)系統(tǒng)設(shè)計(jì)的要求。<

6、/p><p>  第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實(shí)現(xiàn),必須將行為方式描述的VHDL語(yǔ)言程序改寫(xiě)為RTL方式描述的VHDL語(yǔ)言程序。也就是說(shuō),系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達(dá)式,才能進(jìn)行邏輯綜合。</p><p>  第三層次是邏輯

7、綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級(jí)網(wǎng)絡(luò)表)。此時(shí),如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對(duì)綜合的結(jié)果在門電路級(jí)上進(jìn)行仿真,并檢查其時(shí)序關(guān)系。</p><p>  應(yīng)用邏輯綜合工具產(chǎn)生的門網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼,即可利用PLD實(shí)現(xiàn)硬件電路的設(shè)計(jì)。</p><p>  由自上而下的設(shè)計(jì)過(guò)程可知,從總體行為設(shè)計(jì)開(kāi)始到

8、最終的邏輯綜合,每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計(jì)中存在的問(wèn)題,從而可以大大縮短系統(tǒng)的設(shè)計(jì)周期。</p><p>  1.3 Quartus II 軟件操作流程</p><p>  雙擊桌面上Quartus II 9.0,打開(kāi)Quartus軟件。</p><p>  新建VHDL文件 ,開(kāi)始編寫(xiě)VHDL程序。</p><p>  

9、保存VHDL文件,文件取名要與程序?qū)嶓w名要一致。</p><p><b>  創(chuàng)建新工程</b></p><p>  按下“保存”按紐后會(huì)出現(xiàn)如下提示。提示是否為此文件建立一個(gè)工程,這很重要。然后點(diǎn)擊“是”,出現(xiàn)以下窗口,點(diǎn)“Next >”。</p><p>  圖1.1 新建工程提示</p><p><b&

10、gt;  (4)器件的選擇</b></p><p>  繼續(xù)點(diǎn)“Next >”。然后選擇FPGA或CPLD的有關(guān)參數(shù),這些參數(shù)都是根據(jù)目標(biāo)芯片來(lái)選擇的,如下圖所示。</p><p><b>  圖1.2 芯片選擇</b></p><p><b>  (5)編譯</b></p><p&g

11、t;  編譯:選擇processing菜單中的start compilation命令。編譯完成的提示如下,點(diǎn)擊確定即可。</p><p><b>  (6)仿真</b></p><p>  這時(shí)可以進(jìn)行仿真,首先要建立波形文件,點(diǎn)“File選項(xiàng)中New”,出現(xiàn)如下窗口:</p><p>  圖1.3 建立波形文件</p><

12、p>  選擇 “Vector waveform File”點(diǎn)“OK”。出現(xiàn)以下窗口。</p><p>  圖1.4 建立波形文件后出現(xiàn)窗口</p><p>  雙擊左邊的空白處,設(shè)定輸入輸出信號(hào)。設(shè)定好波形后,保存波形。之后點(diǎn)進(jìn)行仿真。</p><p><b> ?。?)鎖定引腳</b></p><p>  引腳鎖

13、定,如下圖操作:</p><p>  引腳的鎖定是根據(jù)不同的電路和不同功能來(lái)確定的,不是一層不變的。</p><p>  選擇Assignments菜單下的Pins命令,出現(xiàn)以下窗口,</p><p>  圖1.5 引腳分配圖</p><p>  如果是下載到實(shí)驗(yàn)箱上則需連續(xù)按“模式選擇”按鈕選擇模式5,再按“系統(tǒng)復(fù)位”按鈕。進(jìn)行引腳鎖定,查

14、閱附表,分別點(diǎn)“l(fā)ocation”選擇引腳號(hào)。引腳鎖定后再編譯。如同此前進(jìn)行過(guò)的。編譯成功后點(diǎn)確定。</p><p><b> ?。?)下載</b></p><p>  選擇Tools菜單下的Programmer命令,然后在Program/Configure下打上鉤選中,點(diǎn)“start”按鈕開(kāi)始下載,“Progress”進(jìn)度條顯示下載進(jìn)度。成功下載后如圖所示:<

15、/p><p>  圖1.6 下載到實(shí)驗(yàn)箱界面</p><p>  下載完后就可以在實(shí)驗(yàn)箱查看結(jié)果。</p><p>  通過(guò)上面的步驟分別下載到實(shí)驗(yàn)箱中和FPGA中,驗(yàn)證了在仿真中的結(jié)果是正確的。</p><p><b>  2 課題設(shè)計(jì)</b></p><p>  2.1 出租車計(jì)費(fèi)器設(shè)計(jì)內(nèi)容<

16、;/p><p> ?。?)能實(shí)現(xiàn)計(jì)程與計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為:按行駛里程收費(fèi),分為白天與黑夜。白天收費(fèi)標(biāo)準(zhǔn):起步價(jià)為6.00元,超過(guò)1公里按1元/公里計(jì)算,超過(guò)3公里多收10塊錢的空車返回費(fèi)用。黑夜收費(fèi)標(biāo)準(zhǔn):起步價(jià)為8.00元,超過(guò)1公里按2元/公里計(jì)算,超過(guò)3公里多收10塊錢的空車返回費(fèi)用。</p><p> ?。?) 能夠有對(duì)路程清零與對(duì)計(jì)費(fèi)停止功能。當(dāng)無(wú)乘客不需要計(jì)費(fèi)時(shí),對(duì)路程清零及對(duì)價(jià)格

17、清零。</p><p>  (3) 實(shí)夠?qū)崿F(xiàn)按鍵控制顯示路程、價(jià)格及當(dāng)前車速,當(dāng)車速超過(guò)4Km/h時(shí)發(fā)出警報(bào)。</p><p>  2.2 出租車計(jì)費(fèi)器設(shè)計(jì)方框圖</p><p>  出租車計(jì)費(fèi)器是由輸入信號(hào)、分頻器(供蜂鳴器發(fā)生警報(bào)提供不同的頻率)、路程計(jì)數(shù)模塊、計(jì)費(fèi)模塊、控制模塊(控制輸出顯示路程、價(jià)格或當(dāng)前車速)、及譯碼顯示模塊(八個(gè)七段數(shù)碼管)。其總體方框圖

18、如下所示:</p><p>  圖2.1 總體設(shè)計(jì)方框圖</p><p>  2.3 出租車計(jì)費(fèi)器系統(tǒng)各功能模塊及模塊程序</p><p>  2.3.1 計(jì)程與計(jì)費(fèi)模塊</p><p>  計(jì)程與計(jì)費(fèi)模塊由一個(gè)時(shí)鐘輸入端 clk 與使能端en及復(fù)位端rst端與位選端SL[2..0]及顯示輸出端led[6..0]構(gòu)成。其en 端為‘1’時(shí)允許

19、計(jì)數(shù),rst為‘1’時(shí)計(jì)數(shù)清零。</p><p>  圖2.2 計(jì)程與計(jì)費(fèi)模塊圖</p><p><b>  其仿真圖如下所示:</b></p><p>  圖2.3 計(jì)程與計(jì)費(fèi)模塊仿真圖</p><p><b>  其程序如下:</b></p><p>  library

20、ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity taxi is</p><p>

21、;  port( Clk : in std_logic; </p><p>  daytime : in std_logic; </p><p>  Rst : in std_logic; </p><p>  en : in std_logic;</p><p> 

22、 Motor : in std_logic; </p><p>  Display : out std_logic_vector(6 downto 0); </p><p>  SEG_SEL: buffer std_logic_vector(2 downto 0) </p><p><b>  ); </b>&l

23、t;/p><p><b>  end taxi;</b></p><p>  architecture one of taxi is</p><p>  signal Disp_Temp : integer range 0 to 15;</p><p>  signal Disp_Decode: std_logic_vect

24、or(6 downto 0);</p><p>  signal Meter1,Meter10,Meter100,Meter1K : integer range 0 to 9; </p><p>  signal Money1,Money10,Money100 : integer range 0 to 9;</p><p>  signal Old_Mone

25、y1 : integer range 0 to 9;</p><p><b>  begin</b></p><p>  process(Motor)</p><p><b>  begin</b></p><p>  if(Rst='0') then</p>&l

26、t;p>  Meter1<=0;</p><p>  Meter10<=0;</p><p>  Meter100<=0;</p><p>  Meter1K<=0;</p><p>  elsif(Motor'event and Motor='1') then</p>&l

27、t;p>  if(Meter1=9) then</p><p>  Meter1<=0;</p><p>  if(Meter10=9) then</p><p>  Meter10<=0;</p><p>  if(Meter100=9) then</p><p>  Meter100<=0;

28、</p><p>  if(Meter1K=9) then</p><p>  Meter1K<=0;</p><p><b>  else </b></p><p>  Meter1K<=Meter1K+1;</p><p><b>  end if;</b>&

29、lt;/p><p><b>  else</b></p><p>  Meter100<=Meter100+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Meter10<

30、;=Meter10+1;</p><p><b>  end if;</b></p><p><b>  else </b></p><p>  Meter1<=Meter1+1;</p><p><b>  end if;</b></p><p>

31、;<b>  end if; </b></p><p>  end process;</p><p>  process(Clk)</p><p><b>  begin</b></p><p>  if en='0' then null; </p><p&g

32、t;  elsif(Rst='0') then</p><p>  Money1<=0;</p><p>  Money10<=0;</p><p>  Money100<=0;</p><p>  elsif(Clk'event and Clk='1') then</p>

33、<p>  if daytime ='0' then --bai tian</p><p>  if(Meter1K<1) then </p><p>  Money100<=0;</p><p>  Money10<=6; </p><p>  Money1<=0;</p

34、><p>  Old_Money1<=0;</p><p><b>  else</b></p><p>  Money1<=Meter100;</p><p>  Old_Money1<=Money1;</p><p>  if(Old_Money1=9 and Money1=0)

35、 then</p><p>  if(Money10=9) then</p><p>  Money10<=0;</p><p>  if(Money100=9) then</p><p>  Money100<=0;</p><p><b>  else </b></p>

36、<p>  Money100<=Money100+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Money10<=Money10+1;</p><p><b>  end if;<

37、/b></p><p>  end if; </p><p>  if (Meter1K=3) then</p><p>  Money100<=1;</p><p>  Money10<=8; </p><p>  Money1<=0;</p><p&g

38、t;  Old_Money1<=0;</p><p>  if (Meter1K >2 )then</p><p>  Money1<=Meter100;</p><p>  Old_Money1<=Money1;</p><p>  if(Old_Money1=9 and Money1=0) then</p&g

39、t;<p>  if(Money10=9) then</p><p>  Money10<=0;</p><p>  if(Money100=9) then</p><p>  Money100<=0;</p><p><b>  else </b></p><p>  

40、Money100<=Money100+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Money10<=Money10+1;</p><p><b>  end if;</b></p&

41、gt;<p><b>  end if;</b></p><p><b>  end if ;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  else --

42、hei ye </p><p>  if(Meter1K<1) then </p><p>  Money100<=0;</p><p>  Money10<=8; </p><p>  Money1<=0;</p><p>  Old_Money1<=0;</p&g

43、t;<p><b>  else</b></p><p>  Money1<=Meter100;</p><p>  Old_Money1<=Money1;</p><p>  if(Old_Money1=9 and Money1=0) then</p><p>  if(Money10=9)

44、then</p><p>  Money10<=0;</p><p>  if(Money100=9) then</p><p>  Money100<=0;</p><p><b>  else </b></p><p>  Money100<=Money100+1;</

45、p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Money10<=Money10+1;</p><p><b>  end if;</b></p><p><b>  end

46、if;</b></p><p><b>  end if;</b></p><p>  if (Meter1K=3) then</p><p>  Money100<=2;</p><p>  Money10<=2; </p><p>  Money1<=0;&l

47、t;/p><p>  Old_Money1<=0;</p><p>  if (Meter1K>2) then </p><p>  Money1<=Meter100;</p><p>  Old_Money1<=Money1;</p><p>  if(Old_Money1=9 and Money

48、1=0) then</p><p>  if(Money10=9) then</p><p>  Money10<=0;</p><p>  if(Money100=9) then</p><p>  Money100<=0;</p><p><b>  else </b></p

49、><p>  Money100<=Money100+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Money10<=Money10+1;</p><p><b>  end if;

50、</b></p><p>  end if; </p><p>  end if; </p><p><b>  end if ;</b></p><p><b>  end if ;</b></p><p><b>

51、;  end if ;</b></p><p>  end process;</p><p>  process(SEG_SEL) </p><p><b>  begin</b></p><p>  case (SEG_SEL+1) is</p><p>  when &q

52、uot;000"=>Disp_Temp<=Meter1K;</p><p>  when "001"=>Disp_Temp<=Meter100;</p><p>  when "010"=>Disp_Temp<=Meter10;</p><p>  when "011&q

53、uot;=>Disp_Temp<=Meter1;</p><p>  when "100"=>Disp_Temp<=10;</p><p>  when "101"=>Disp_Temp<=Money100;</p><p>  when "110"=>Disp_T

54、emp<=Money10;</p><p>  when "111"=>Disp_Temp<=Money1;</p><p>  end case; </p><p>  end process;</p><p>  process(Clk)</p><p><

55、b>  begin</b></p><p>  if(Clk'event and Clk='1') then </p><p>  SEG_SEL<=SEG_SEL+1;</p><p>  if (SEG_SEL=9) then SEG_SEL<="000";</p>&l

56、t;p><b>  else </b></p><p>  Display<=Disp_Decode;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p&

57、gt;<p>  process(Disp_Temp) </p><p><b>  begin</b></p><p>  case Disp_Temp is</p><p>  when 0=>Disp_Decode<="0111111"; </p><p> 

58、 when 1=>Disp_Decode<="0000110"; </p><p>  when 2=>Disp_Decode<="1011011"; </p><p>  when 3=>Disp_Decode<="1001111"; </p><p>  wh

59、en 4=>Disp_Decode<="1100110"; </p><p>  when 5=>Disp_Decode<="1101101"; </p><p>  when 6=>Disp_Decode<="1111101"; </p><p>  whe

60、n 7=>Disp_Decode<="0000111"; </p><p>  when 8=>Disp_Decode<="1111111"; </p><p>  when 9=>Disp_Decode<="1101111"; </p><p>  when

61、 10=>Disp_Decode<="1000000"; </p><p>  when others=>Disp_Decode<="0000000"; </p><p><b>  end case;</b></p><p>  end process; </p&

62、gt;<p><b>  end one;</b></p><p><b>  2.3.2測(cè)速模塊</b></p><p>  測(cè)速模塊輸入端由Clk及Motor端組成,Clk提供計(jì)數(shù)脈沖,通過(guò)計(jì)Motor 6秒轉(zhuǎn)的圈數(shù)然后乘以10作為一分種出租車的車速,其輸出端變由SEL[2..0]及l(fā)out7[6..0]組成,前者用于掃描數(shù)碼管

63、的驅(qū)動(dòng),后者用于顯示轉(zhuǎn)速。</p><p><b>  圖2.4 測(cè)速模塊</b></p><p><b>  其仿真圖如下所示:</b></p><p>  圖2.5 測(cè)速模塊仿真圖</p><p><b>  其程序如下:</b></p><p> 

64、 library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity teltcl is</p>

65、;<p>  port( Clk : in std_logic; </p><p>  Motor : in std_logic;</p><p>  SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  lout7:out std_logic_vector(6 down

66、to 0));</p><p>  end teltcl;</p><p>  architecture one of teltcl is</p><p>  signal clk1hz :std_logic;--1HZ時(shí)鐘信號(hào);</p><p>  signal count : std_logic_vector(2 dow

67、nto 0); </p><p>  signal clr1 :std_logic ;</p><p>  signal ena1 :std_logic; </p><p>  signal load1 :std_logic; </p><p>  signal CQ1,CQ2,CQ3,CQ4 : std_l

68、ogic_vector(3 downto 0); </p><p>  SIGNAL CQA :std_logic_vector(15 DOWNTO 0);</p><p>  SIGNAL DOUT : STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p>  signal s:std_logic_vector(2 downto 0);&l

69、t;/p><p>  signal lout4:std_logic_vector(3 downto 0);</p><p>  SIGNAL in3,in2,in1,in0:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  process(clk)

70、 </p><p>  variable cnttemp : INTEGER RANGE 0 TO 999999;</p><p><b>  begin</b></p><p>  IF clk='1' AND clk'event THEN </p><p>  IF cnttemp=99

71、9999 THEN cnttemp:=0; </p><p><b>  ELSE </b></p><p>  IF cnttemp<500000 THEN clk1hz<='1'; </p><p>  ELSE clk1hz<='0'; </p><p><b

72、>  END IF; </b></p><p>  cnttemp:=cnttemp+1; </p><p><b>  END IF; </b></p><p><b>  end if;</b></p><p>  end process;</p><p&

73、gt;  process(Clk1hz) </p><p><b>  begin</b></p><p>  if(Clk1hz'event and Clk1hz='1') then</p><p>  count<=count+1;</p><p>  if count<6 t

74、hen</p><p>  ena1<='1';load1<='0';clr1<='0';</p><p>  elsif count=6 then</p><p>  load1<='1';ena1<='0';clr1<='0'

75、;</p><p>  elsif count=7 then</p><p>  ena1<='0';load1<='0';clr1<='1';</p><p><b>  end if;</b></p><p><b>  end if

76、;</b></p><p>  end process;</p><p>  PROCESS(CLK,ENA1) IS</p><p><b>  BEGIN</b></p><p>  IF CLR1= '1' THEN CQ1<= "0000"; <

77、/p><p>  elsif(Motor'event and Motor='1') then </p><p>  IF ENA1= '1' THEN </p><p>  if(CQ1="1001") then</p><p>  CQ1<="0000";&l

78、t;/p><p>  if(CQ2=9) then</p><p>  CQ2<="0000";</p><p>  if(CQ3="1001") then</p><p>  CQ3<="0000";</p><p>  if(CQ4="1

79、001") then</p><p>  CQ4<="0000";</p><p><b>  else </b></p><p>  CQ4<=CQ4+1;</p><p><b>  end if;</b></p><p><

80、;b>  else</b></p><p>  CQ3<=CQ3+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  CQ2<=CQ2+1;</p><p><b>

81、;  end if;</b></p><p><b>  else </b></p><p>  CQ1<=CQ1+1;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p

82、><b>  END IF ;</b></p><p>  CQA<=(CQ4&CQ3&CQ2&CQ1);</p><p>  end process;</p><p>  PROCESS ( LOAD1,CQA) IS</p><p><b>  BEGIN</b&

83、gt;</p><p>  IF LOAD1 'EVENT AND LOAD1= '1' </p><p>  THEN DOUT<=CQA; </p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  pr

84、ocess (clk)</p><p><b>  begin</b></p><p>  IN3<=DOUT(15 DOWNTO 12);</p><p>  IN2<=DOUT(11 DOWNTO 8);</p><p>  IN1<=DOUT(7 DOWNTO 4);</p><

85、;p>  IN0<=DOUT(3 DOWNTO 0);</p><p>  if (clk'event and clk='1')then</p><p>  if (s="111") then</p><p><b>  s<="000";</b></p&g

86、t;<p>  else s<=s+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  sel<=s;</b></p><p>  end process;</

87、p><p>  process (s)</p><p><b>  begin</b></p><p><b>  case s is</b></p><p>  when "000"=>lout4<="1111";</p><p&

88、gt;  when "001"=>lout4<="1111";</p><p>  when "010"=>lout4<=in2;</p><p>  when "011"=>lout4<=in1;</p><p>  when "100&q

89、uot;=>lout4<=in0;</p><p>  when "101"=>lout4<="0000";</p><p>  when "110"=>lout4<="1111";</p><p>  when "111"=>

90、;lout4<="1111";</p><p>  when others=>lout4<="XXXX";</p><p><b>  end case;</b></p><p>  case lout4 is</p><p>  when "0000&

91、quot;=>lout7<="0111111";</p><p>  when "0001"=>lout7<="0000110";</p><p>  when "0010"=>lout7<="1011011";</p><p> 

92、 when "0011"=>lout7<="1001111";</p><p>  when "0100"=>lout7<="1100110";</p><p>  when "0101"=>lout7<="1101101";</

93、p><p>  when "0110"=>lout7<="1111101";</p><p>  when "0111"=>lout7<="0000111";</p><p>  when "1000"=>lout7<="11

94、11111";</p><p>  when "1001"=>lout7<="1100111";</p><p>  when "1010"=>lout7<="0111111";</p><p>  when "1111"=>l

95、out7<="1000000";</p><p>  when others=>lout7<="XXXXXXX";</p><p><b>  end case;</b></p><p>  end process;</p><p><b>  end

96、one;</b></p><p><b>  2.3.3報(bào)警模塊</b></p><p>  報(bào)警模塊輸入端由Clk構(gòu)成,其主要用途在于為蜂嗚器提供不同頻率,其輸出端由spk端構(gòu)成,其是一個(gè)蜂鳴器用于報(bào)警。</p><p>  圖2.6 蜂鳴器模塊</p><p><b>  其仿真圖如下:<

97、/b></p><p>  圖2.7 蜂鳴器模塊仿真圖</p><p><b>  其程序如下:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_a

98、rith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity teltcl is</p><p>  port( Clk : in std_logic; </p><p>  spk : buffer std_logic);&l

99、t;/p><p>  end teltcl;</p><p>  architecture one of teltcl is</p><p>  signal tone : std_logic_vector(10 downto 0);</p><p>  signal tone_count : std_logic_vector

100、(10 downto 0);</p><p>  signal tone_index : integer range 0 to 15;</p><p>  signal clk10_count : std_logic_vector(17 downto 0);</p><p>  signal time : integer range 0 to

101、150;</p><p>  signal clk10 : std_logic;</p><p><b>  begin</b></p><p>  process(clk) --generate 10hz clock signal</p><p><b>  begin</b>&l

102、t;/p><p>  if(clk'event and clk='1') then</p><p>  clk10_count<=clk10_count+1;</p><p>  if(clk10_count=16#3fff#) then</p><p>  clk10<=not clk10;</p>

103、;<p>  end if; </p><p><b>  END IF ;</b></p><p>  end process;</p><p>  process(clk10) </p><p><b>  begin</b></p><p>  i

104、f(clk10'event and clk10='1') then</p><p>  if(time=150) then</p><p><b>  time<=0;</b></p><p><b>  else</b></p><p>  time<=time

105、+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(clk10) </p><p><b>  begin</b>

106、;</p><p>  if(clk10'event and clk10='1') then</p><p>  case time is</p><p>  when 0=>tone_index<=3; </p><p>  when 1=>tone_index<=3;</p>

107、<p>  when 2=>tone_index<=3;</p><p>  when 3=>tone_index<=3;</p><p>  when 4=>tone_index<=5;</p><p>  when 5=>tone_index<=5;</p><p>  when

108、6=>tone_index<=5;</p><p>  when 7=>tone_index<=6;</p><p>  when 8=>tone_index<=8;</p><p>  when 9=>tone_index<=8;</p><p>  when 10=>tone_inde

109、x<=8;</p><p>  when 11=>tone_index<=9;</p><p>  when 12=>tone_index<=6;</p><p>  when 13=>tone_index<=8;</p><p>  when 14=>tone_index<=5;<

110、/p><p>  when 15=>tone_index<=5;</p><p>  when 16=>tone_index<=12;</p><p>  when 17=>tone_index<=12;</p><p>  when 18=>tone_index<=12;</p>&

111、lt;p>  when 19=>tone_index<=15;</p><p>  when 20=>tone_index<=13;</p><p>  when 21=>tone_index<=12;</p><p>  when 22=>tone_index<=10;</p><p>

112、  when 23=>tone_index<=12;</p><p>  when 24=>tone_index<=9;</p><p>  when 25=>tone_index<=9;</p><p>  when 26=>tone_index<=9;</p><p>  when 27=&

113、gt;tone_index<=9;</p><p>  when 28=>tone_index<=9;</p><p>  when 29=>tone_index<=9;</p><p>  when 30=>tone_index<=0;</p><p>  when 31=>tone_inde

114、x<=0;</p><p>  when 32=>tone_index<=9;</p><p>  when 33=>tone_index<=9;</p><p>  when 34=>tone_index<=9;</p><p>  when 35=>tone_index<=10;<

115、;/p><p>  when 36=>tone_index<=7;</p><p>  when 37=>tone_index<=7;</p><p>  when 38=>tone_index<=6;</p><p>  when 39=>tone_index<=6;</p><

116、;p>  when 40=>tone_index<=5;</p><p>  when 41=>tone_index<=5;</p><p>  when 42=>tone_index<=5;</p><p>  when 43=>tone_index<=6;</p><p>  when

117、 44=>tone_index<=8;</p><p>  when 45=>tone_index<=8;</p><p>  when 46=>tone_index<=9;</p><p>  when 47=>tone_index<=9;</p><p>  when 48=>tone

118、_index<=3;</p><p>  when 49=>tone_index<=3;</p><p>  when 50=>tone_index<=8;</p><p>  when 51=>tone_index<=8;</p><p>  when 52=>tone_index<=6

119、;</p><p>  when 53=>tone_index<=5;</p><p>  when 54=>tone_index<=6;</p><p>  when 55=>tone_index<=8;</p><p>  when 56=>tone_index<=5;</p>

120、<p>  when 57=>tone_index<=5;</p><p>  when 58=>tone_index<=5;</p><p>  when 59=>tone_index<=5;</p><p>  when 60=>tone_index<=5;</p><p>  

121、when 61=>tone_index<=5;</p><p>  when 62=>tone_index<=0;</p><p>  when 63=>tone_index<=0;</p><p>  when 64=>tone_index<=10;</p><p>  when 65=>

122、;tone_index<=10;</p><p>  when 66=>tone_index<=10;</p><p>  when 67=>tone_index<=12;</p><p>  when 68=>tone_index<=7;</p><p>  when 69=>tone_ind

123、ex<=7;</p><p>  when 70=>tone_index<=9;</p><p>  when 71=>tone_index<=9;</p><p>  when 72=>tone_index<=6;</p><p>  when 73=>tone_index<=8;<

124、;/p><p>  when 74=>tone_index<=5;</p><p>  when 75=>tone_index<=5;</p><p>  when 76=>tone_index<=5;</p><p>  when 77=>tone_index<=5;</p><

125、;p>  when 78=>tone_index<=5;</p><p>  when 79=>tone_index<=5;</p><p>  when 80=>tone_index<=5;</p><p>  when 81=>tone_index<=0;</p><p>  when

126、 82=>tone_index<=0;</p><p>  when 83=>tone_index<=3;</p><p>  when 84=>tone_index<=5;</p><p>  when 85=>tone_index<=3;</p><p>  when 86=>tone

127、_index<=5;</p><p>  when 87=>tone_index<=5;</p><p>  when 88=>tone_index<=6;</p><p>  when 89=>tone_index<=7;</p><p>  when 90=>tone_index<=9

128、;</p><p>  when 91=>tone_index<=6;</p><p>  when 92=>tone_index<=6;</p><p>  when 93=>tone_index<=6;</p><p>  when 94=>tone_index<=6;</p>

129、<p>  when 95=>tone_index<=6;</p><p>  when 96=>tone_index<=6;</p><p>  when 97=>tone_index<=5;</p><p>  when 98=>tone_index<=6;</p><p>  

130、when 99=>tone_index<=8;</p><p>  when 100=>tone_index<=8;</p><p>  when 101=>tone_index<=8;</p><p>  when 102=>tone_index<=9;</p><p>  when 103=

131、>tone_index<=12;</p><p>  when 104=>tone_index<=12;</p><p>  when 105=>tone_index<=12;</p><p>  when 106=>tone_index<=10;</p><p>  when 107=>

132、tone_index<=9;</p><p>  when 108=>tone_index<=9;</p><p>  when 109=>tone_index<=10;</p><p>  when 110=>tone_index<=9;</p><p>  when 111=>tone_in

133、dex<=8;</p><p>  when 112=>tone_index<=8;</p><p>  when 113=>tone_index<=6;</p><p>  when 114=>tone_index<=5;</p><p>  when 115=>tone_index<=

134、3;</p><p>  when 116=>tone_index<=3;</p><p>  when 117=>tone_index<=3;</p><p>  when 118=>tone_index<=3;</p><p>  when 119=>tone_index<=8;</p

135、><p>  when 120=>tone_index<=8;</p><p>  when 121=>tone_index<=8;</p><p>  when 122=>tone_index<=8;</p><p>  when 123=>tone_index<=6;</p>&l

136、t;p>  when 124=>tone_index<=8;</p><p>  when 125=>tone_index<=6;</p><p>  when 126=>tone_index<=5;</p><p>  when 127=>tone_index<=3;</p><p> 

137、 when 128=>tone_index<=5;</p><p>  when 129=>tone_index<=6;</p><p>  when 130=>tone_index<=8;</p><p>  when 131=>tone_index<=5;</p><p>  when 13

138、2=>tone_index<=5;</p><p>  when 133=>tone_index<=5;</p><p>  when 134=>tone_index<=5;</p><p>  when 135=>tone_index<=5;</p><p>  when 136=>to

139、ne_index<=5;</p><p>  when 137=>tone_index<=5;</p><p>  when 138=>tone_index<=0;</p><p>  when 139=>tone_index<=0;</p><p>  when others=>tone_in

140、dex<=0;</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(tone_index)</p><p><b>  b

141、egin</b></p><p>  case tone_index is</p><p>  when 0=>tone<="11111111111"; --no output</p><p>  when 1=>tone<="01100000101"; --773</p>

142、;<p>  when 2=>tone<="01110010000"; --912</p><p>  when 3=>tone<="10000001100"; --1036</p><p>  when 5=>tone<="10010101101"; --1197&l

溫馨提示

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

評(píng)論

0/150

提交評(píng)論