2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩10頁(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>  EDA技術(shù)課程設(shè)計(jì)報(bào)告</p><p>  一、設(shè)計(jì)題目及要求:</p><p><b>  出租車計(jì)費(fèi)器</b></p><p> ?。?)具有行車?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi)、起價(jià)三部分,最大顯示金額99.99元</p><p> ?。?)起價(jià):三公里內(nèi)8元,等待時(shí)間超過(guò)10分鐘1元/10分鐘,行車?yán)?/p>

2、程單價(jià)1元,價(jià)格數(shù)值可修改。</p><p><b>  二、設(shè)計(jì)思路:</b></p><p>  首先用分頻模塊產(chǎn)生三個(gè)分頻,一個(gè)用來(lái)計(jì)算等到時(shí)間超過(guò)10分鐘時(shí)的價(jià)格,一個(gè)用來(lái)計(jì)算行車?yán)锍坛^(guò)三公里時(shí)的價(jià)格,還有一個(gè)用于計(jì)算等待時(shí)間以及行車?yán)锍?。用?jì)量模塊計(jì)算等待時(shí)間,若超過(guò)十分鐘,則使en1為1,否則為0,若行車?yán)锍坛^(guò)3公里,則使en0為1,否則為0。用控制模

3、塊根據(jù)en1和en0的值選擇計(jì)費(fèi)時(shí)鐘。用計(jì)費(fèi)模塊進(jìn)行計(jì)費(fèi)。最后用顯示模塊進(jìn)行8個(gè)數(shù)碼管的依次顯示。</p><p>  三、各個(gè)模塊的具體實(shí)現(xiàn):</p><p><b>  分頻模塊思路:</b></p><p>  輸入400HZ的時(shí)鐘,產(chǎn)生一個(gè)20分頻的時(shí)鐘(即20HZ)用來(lái)計(jì)算等待時(shí)間超過(guò)10分鐘時(shí)的0.1元/min;再產(chǎn)生一個(gè)2分頻的時(shí)

4、鐘(即200HZ)用來(lái)計(jì)算行車?yán)锍坛^(guò)三公里時(shí)的1元/公里。最后產(chǎn)生一個(gè)1HZ的時(shí)鐘,用做幾個(gè)子模塊的時(shí)鐘。</p><p>  1、分頻模塊的源程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_ari

5、th.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity fp is --分頻模塊</p><p><b>  port(</b></p><p>  clk_400:in std_logic;

6、 --輸入400HZ的時(shí)鐘</p><p>  q2:out std_logic; --二分頻時(shí)鐘,用來(lái)計(jì)算里程超過(guò)3公里的價(jià)錢</p><p>  q20:out std_logic; --二十分頻時(shí)鐘,用來(lái)計(jì)算等待時(shí)間超過(guò)10分鐘的價(jià)錢</p><p>  q1:out std_logi

7、c); --幾個(gè)子模塊的時(shí)鐘</p><p><b>  end fp;</b></p><p>  architecture behav of fp is</p><p><b>  begin</b></p><p>  process(clk_400)</

8、p><p>  variable count2:integer range 0 to 199;</p><p>  variable count20:integer range 0 to 19;</p><p>  variable count1 :integer range 0 to 399;</p><p><b>  begin&

9、lt;/b></p><p>  if clk_400'event and clk_400='1' then --上升沿檢測(cè)</p><p>  if count2=199 --產(chǎn)生2分頻的時(shí)鐘</p><p>  then count2:=0

10、;q2<='1';</p><p>  else count2:=count2+1;q2<='0';</p><p><b>  end if;</b></p><p>  if count20=19 --產(chǎn)生20分頻的時(shí)鐘</p&

11、gt;<p>  then count20:=0;q20<='1';</p><p>  else count20:=count20+1;q20<='0';</p><p><b>  end if;</b></p><p>  if count1=399

12、 --產(chǎn)生子模塊的時(shí)鐘</p><p>  then count1:=0;q1<='1';</p><p>  else count1:=count1+1;q1<='0';</p><p><b>  end if;</b></p><p><

13、;b>  end if;</b></p><p>  end process;</p><p>  end behav;</p><p>  分頻模塊波形仿真圖:</p><p>  clk_400是產(chǎn)生400HZ的脈沖,q1產(chǎn)生的是1HZ的脈沖,當(dāng)?shù)却龝r(shí)用來(lái)累計(jì)等待時(shí)間,當(dāng)行駛時(shí)用來(lái)累計(jì)行駛的路程;q2是一個(gè)兩分頻的脈沖,

14、產(chǎn)生200HZ的脈沖,相當(dāng)于是1元,用來(lái)計(jì)算超出3公里時(shí)的價(jià)錢,每公里1一元;q20是一個(gè)20分頻的脈沖,產(chǎn)生的是20HZ的脈沖,相當(dāng)于是0.1元,用來(lái)計(jì)算等待時(shí)間超過(guò)十分鐘時(shí)的價(jià)錢,每分鐘是0.1元。</p><p><b>  分頻模塊封裝形式:</b></p><p><b>  控制模塊思路:</b></p><p&g

15、t;  如果en1為1,則表示等待時(shí)間超過(guò)10分鐘,選擇20分頻的時(shí)鐘,clk_20;如果en0等于1,表示行車?yán)锍坛^(guò)3公里,選擇2分頻的時(shí)鐘,clk_2。</p><p>  2、控制模塊的源程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>

16、;  use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  entity kongzhi1 is</p><p><b>  port(</b></p><p>  en0,en1:in std_logic;

17、 </p><p>  clk_in20:in std_logic;</p><p>  clk_in2:in std_logic;</p><p>  clk_out:out std_logic</p><p><b>  );</b></p><p>  e

18、nd kongzhi1;</p><p>  architecture behave of kongzhi1 is</p><p><b>  begin</b></p><p>  process(en0,en1)</p><p><b>  begin</b></p><p&

19、gt;  if en0='1' then --行車?yán)锍坛^(guò)3公里,選擇2分頻時(shí)鐘</p><p>  clk_out<=clk_in2;</p><p>  elsif en1='1' then --等待時(shí)間超過(guò)10分鐘,選擇20分頻時(shí)鐘</

20、p><p>  clk_out<=clk_in20;</p><p><b>  end if;</b></p><p>  end process;</p><p>  end behave;</p><p>  控制模塊的波形仿真圖:</p><p>  en1=1,

21、選擇clk_20,表示0.1元/min;en0=1,選擇clk_2,表示1元/公里。</p><p>  控制模塊的封裝形式:</p><p>  3、計(jì)量模塊源程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  us

22、e ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity count is</p><p><b>  port(</b></p><p>  start:in std_logic;

23、 --start為1表示有出租車接到顧客 </p><p>  stop:in std_logic; --stop為1表示開始等待</p><p>  q1:in std_logic; --時(shí)鐘</p><p>  en1,en0:buffer std_logic; --選擇信號(hào)</p&g

24、t;<p>  k1,k0:buffer std_logic_vector(3 downto 0); --里程數(shù)k0是個(gè)位,k1是十位</p><p>  m0,m1:buffer std_logic_vector(3 downto 0) --等待時(shí)間,m0是個(gè)位,m1是十位</p><p><b>  );</b><

25、/p><p>  end count;</p><p>  architecture behav of count is</p><p>  signal wt:integer range 0 to 59; --等待時(shí)間計(jì)時(shí),單位是秒</p><p><b>  begin</b><

26、/p><p>  process(q1)</p><p><b>  begin</b></p><p>  if q1'event and q1='1' then</p><p>  if start='0'then --沒有顧客時(shí)清零

27、</p><p>  wt<=0;en1<='0';en0<='0';m1<="0000";m0<="0000";</p><p>  k1<="0000";</p><p>  k0<="0000";</p

28、><p>  elsif stop='1' then --開始等待</p><p>  if wt=59 then wt<=0; --計(jì)時(shí)滿1秒</p><p>  if m0="1001" then m0<="0000";

29、 --最大顯示59min</p><p>  if m1="0101" then m1<="0000";</p><p>  else m1<=m1+1;</p><p><b>  end if;</b></p><p>  else m0<=m0+1;<

30、/p><p><b>  end if;</b></p><p>  if m1&m0>"00001001"then en1<='1'; --等待時(shí)間超過(guò)10min,en1為1,否則為0</p><p>  else en1<='0';</p><

31、p><b>  end if;</b></p><p>  else wt<=wt+1;en1<='0';</p><p><b>  end if;</b></p><p>  else if k0="1001"then k0<="0000"

32、; --開始計(jì)算里程數(shù),最大為99</p><p>  if k1="1001" then k1<="0000";</p><p>  else k1<=k1+1;</p><p><b>  end if;</b></p><p>  else k

33、0<=k0+1;</p><p><b>  end if;</b></p><p>  if k1&k0>"00000010"then en0<='1'; --如果里程數(shù)大于3公里,則en0為1,否則為0</p><p>  else en1<='0';en

34、0<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>

35、;  end behav;</p><p>  計(jì)量模塊波形仿真圖:</p><p>  Start為1,stop為1,表示開始等待,m1,m0,wt開始計(jì)時(shí),wt滿60s向m0進(jìn)1。</p><p>  仍然是在計(jì)時(shí),當(dāng)計(jì)時(shí)滿10min時(shí)en1為1</p><p>  當(dāng)stop為0時(shí),表示在行駛,k1,k0開始據(jù)算里程數(shù),當(dāng)計(jì)滿3公里時(shí),

36、en0為1。</p><p><b>  計(jì)量模塊封裝形式:</b></p><p>  4、計(jì)費(fèi)模塊源程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_u

37、nsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  entity money is</p><p><b>  port(</b></p><p>  clkout:in std_logic; --選擇好的時(shí)鐘&

38、lt;/p><p>  start:in std_logic;</p><p>  c0:buffer std_logic_vector(3 downto 0); --價(jià)格的十位</p><p>  c1:buffer std_logic_vector(3 downto 0); --價(jià)格的個(gè)位</p><p>  c2:buffe

39、r std_logic_vector(3 downto 0); --價(jià)格的小數(shù)點(diǎn)后第一位</p><p>  c3:buffer std_logic_vector(3 downto 0) --價(jià)格的小數(shù)點(diǎn)后第二位</p><p><b>  );</b></p><p>  end money;</p><

40、p>  architecture behav of money is</p><p><b>  begin</b></p><p>  process(start,clkout)</p><p><b>  begin </b></p><p>  if start='0't

41、hen --沒有顧客時(shí)清零</p><p>  c0<="0000";</p><p>  c1<="0000";</p><p>  c2<="1000";</p><p>  c3<="0000";</p

42、><p>  elsif clkout'event and clkout='1'then --每來(lái)一個(gè)計(jì)費(fèi)脈沖就進(jìn)行一次計(jì)費(fèi)</p><p>  if c3="1001"then</p><p>  c3<="0000";</p><p>  if c2="

43、;1001"then</p><p>  c2<="0000";</p><p>  if c1="1001"then</p><p>  c1<="0000";</p><p>  if c0="1001"then</p>&

44、lt;p>  c0<="0000";</p><p>  else c0<=c0+'1';</p><p><b>  end if;</b></p><p>  else c1<=c1+'1';</p><p><b>  end i

45、f;</b></p><p>  else c2<=c2+'1';</p><p><b>  end if;</b></p><p>  else c3<=c3+'1';</p><p><b>  end if;</b></p>

46、<p><b>  end if;</b></p><p>  end process;</p><p>  end behav;</p><p>  計(jì)費(fèi)模塊波形仿真圖:</p><p>  start為1,開始計(jì)費(fèi),格式是:c0c1.c2c3,起步價(jià)是8元。</p><p>&

47、lt;b>  計(jì)費(fèi)模塊封裝形式:</b></p><p>  5、顯示部分源程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><

48、p>  use ieee.std_logic_arith.all;</p><p>  entity display1 is</p><p><b>  port(</b></p><p>  reset:in std_logic; --復(fù)位信號(hào)</p><p>  q1 :in std

49、_logic; --時(shí)鐘信號(hào)</p><p>  m0 :in std_logic_vector(3 downto 0); -等待時(shí)間</p><p>  m1 :in std_logic_vector(3 downto 0);</p><p>  k0 :in std_logic_vector(3 downto 0);

50、 --行駛公里</p><p>  k1 :in std_logic_vector(3 downto 0); </p><p>  c0 :in std_logic_vector(3 downto 0); --計(jì)費(fèi)值 </p><p>  c1 :in std_logic_vector(3 downto 0); </p>&l

51、t;p>  c2 :in std_logic_vector(3 downto 0);</p><p>  c3 :in std_logic_vector(3 downto 0);</p><p>  sel :out std_logic_vector(7 downto 0); --位選信號(hào) </p><p>  show :out std_logi

52、c_vector(7 downto 0)); --數(shù)碼管顯示輸出</p><p>  end display1;</p><p>  architecture behav of display1 is</p><p>  type state_type is(led1,led2,led3,led4,led5,led6,led7,led8);</p>

53、<p><b>  --狀態(tài)機(jī)定義</b></p><p>  signal pre_state,next_state:state_type; --信號(hào)定義</p><p>  signal q :std_logic_vector(31 downto 0);</p><p>  signal q_reg :std_

54、logic_vector(3 downto 0);</p><p>  signal sel_reg:std_logic_vector(7 downto 0);</p><p>  signal show_reg:std_logic_vector(6 downto 0);</p><p><b>  begin</b></p>&

55、lt;p>  q<=m1&m0&k1&k0&c3&c2&c1&c0;</p><p>  present_state_register: --狀態(tài)寄存器</p><p>  process(q1)</p><p><b>  begin</b></p>&l

56、t;p>  if reset=’0’ then</p><p>  pre_state<=led1;</p><p><b>  elsif</b></p><p>  q1'event and q1='1' then pre_state<=next_state;</p><p>

57、;<b>  end if;</b></p><p>  end process;</p><p>  process(reset,q1) --狀態(tài)機(jī)</p><p><b>  begin</b></p><p>  if reset=’0’ then</p>

58、<p>  next_state<=led1;</p><p><b>  elsif </b></p><p>  q1'event and q1='1'then</p><p>  case (next_state) is</p><p>  when led1=>q_r

59、eg<=q(3 downto 0) ;sel_reg<="11111110";next_state<=led2; --第一個(gè)數(shù)碼管亮</p><p>  when led2=>q_reg<=q(7 downto 4);sel_reg<="11111101";next_state<=led3; --第二個(gè)數(shù)碼管亮<

60、/p><p>  when led3=>q_reg<=q(11 downto 8);sel_reg<="11111011";next_state<=led4; --第三個(gè)數(shù)碼管亮</p><p>  when led4=>q_reg<=q(15 downto 12);sel_reg<="11110111"

61、;next_state<=led5; --第四個(gè)數(shù)碼管亮</p><p>  when led5=>q_reg<=q(19 downto 16); sel_reg<="11101111";next_state<=led6; --第五個(gè)數(shù)碼管亮 </p><p>  when led6=>q_reg&l

62、t;=q(23 downto 20); sel_reg<="11011111";next_state<=led7; --第六個(gè)數(shù)碼管亮</p><p>  when led7=>q_reg<=q(27 downto 24); sel_reg<="10111111";next_state<=led8; --

63、第七個(gè)數(shù)碼管亮</p><p>  when led8=>q_reg<=q(31 downto 28); sel_reg<="01111111";next_state<=led1; --第八個(gè)數(shù)碼管亮</p><p>  when others=>q_reg<="11111111";sel_reg&

64、lt;="11111111";next_state<=led1;</p><p><b>  --所有數(shù)碼管全滅</b></p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>  e

65、nd process;</p><p>  with q_reg select --開始譯碼顯示</p><p>  show_reg<="1000000"when"0000",</p><p>  "1111001"when"0001",</p>

66、<p>  "0100100"when"0010",</p><p>  "0110000"when"0011",</p><p>  "0011001"when"0100",</p><p>  "0010010"w

67、hen"0101", </p><p>  "0000010"when"0110",</p><p>  "1011000"when"0111",</p><p>  "0000000"when"1000", </p>

68、;<p>  "0010000"when"1001",</p><p>  "11111111"when others;</p><p>  sel<=sel_reg;</p><p>  show<='0'&show_reg when sel_reg=&q

69、uot;11111011"else '1'&show_reg; --計(jì)費(fèi)時(shí)使用小數(shù)點(diǎn),顯示c3c2.c1c0</p><p>  end behav;</p><p>  顯示部分仿真波形圖:</p><p>  reset 為1,sel輸出選擇的數(shù)碼管,“0”表示選中,show輸出顯示的信息。順序?yàn)閏0c1.c

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論