數(shù)字邏輯與數(shù)字系統(tǒng)課程設(shè)計(jì)(簡(jiǎn)單計(jì)算器)_第1頁(yè)
已閱讀1頁(yè),還剩9頁(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、<p><b>  簡(jiǎn)單計(jì)算器</b></p><p><b>  一、設(shè)計(jì)分析</b></p><p><b>  1、功能描述</b></p><p>  設(shè)計(jì)一個(gè)簡(jiǎn)單0-9數(shù)之間的加、減、乘法運(yùn)算的計(jì)算器,,輸入和輸出均可以顯示在數(shù)碼管上。</p><p>&l

2、t;b>  2、實(shí)現(xiàn)工具</b></p><p>  1、用VHDL 語(yǔ)言文本形式輸入;</p><p>  2、maxplusII行語(yǔ)言編寫(xiě)時(shí)序仿真和綜合。</p><p><b>  二、設(shè)計(jì)思想</b></p><p>  采用自頂向下的設(shè)計(jì)方式,分層進(jìn)行設(shè)計(jì)。設(shè)計(jì)分為五個(gè)模塊進(jìn)行;</p&

3、gt;<p>  計(jì)算器模塊、八位二進(jìn)制數(shù)轉(zhuǎn)化成8421BCD碼模塊,四選一數(shù)據(jù)選擇器模塊,七段顯示譯碼器模塊、模4計(jì)數(shù)器模塊、模8計(jì)數(shù)器塊、3—8譯碼器塊。頂層設(shè)計(jì)可以完全獨(dú)立于目標(biāo)器件芯片物理結(jié)構(gòu)的硬件描述語(yǔ)言。使用VHDL模型在所綜合級(jí)別上對(duì)硬件設(shè)計(jì)進(jìn)行說(shuō)明、建模和仿真。</p><p><b>  1、頂層原原理框圖</b></p><p>  

4、2、具體實(shí)現(xiàn) </p><p><b>  1、計(jì)算器模塊、</b></p><p>  2、八位二進(jìn)制數(shù)轉(zhuǎn)化成8421BCD碼模塊</p><p>  3、四選一數(shù)據(jù)選擇器模塊</p><p>  4、七段顯示譯碼器模塊</p><p><b>  5

5、、模4計(jì)數(shù)器模塊</b></p><p><b>  6、模8計(jì)數(shù)器塊</b></p><p><b>  7、3—8譯碼器塊</b></p><p><b>  三、設(shè)計(jì)過(guò)程</b></p><p><b>  1、建立工程</b></

6、p><p>  建立一個(gè)Project,命名為jiandanjisuanqi。將各個(gè)模塊生成的文件放在同一個(gè)文件夾下。</p><p><b>  2、文本輸入</b></p><p>  將各個(gè)模塊的VHDL代碼輸入,保存并綜合。</p><p><b>  3、仿真</b></p>&

7、lt;p>  建立各個(gè)模塊的gdf圖,設(shè)置輸入波形并仿真。</p><p><b>  4、頂層原理圖輸入</b></p><p>  利用各個(gè)模塊生成的sym文件建立頂層原理圖,編譯并仿真。</p><p><b>  5、硬件實(shí)現(xiàn)</b></p><p>  實(shí)驗(yàn)室提供的器件為FLEX10

8、K,型號(hào)為EPF10K10LC84-4,將文件下載到器件當(dāng)中,在實(shí)驗(yàn)箱中進(jìn)行模擬。</p><p><b>  四、 整體框圖</b></p><p>  五、VHDL部分代碼及說(shuō)明</p><p><b>  1、計(jì)算器模塊、</b></p><p>  library IEEE;</p&g

9、t;<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 jisuanqi is </p><p>  Port

10、(a,b: in STD_LOGIC_VECTOR (3 downto 0);</p><p>  sel:in STD_LOGIC_VECTOR (1 downto 0); -----加減乘控制端</p><p>  s: out STD_LOGIC_VECTOR (7 downto 0));</p><p>  end jisuanqi;</p&g

11、t;<p>  architecture Behavioral of jisuanqi is</p><p>  signal q1 ,q2: STD_LOGIC_VECTOR (3 downto 0); </p><p>  signal q3: STD_LOGIC_VECTOR (7 downto 0);</p><p>  sign

12、al q4: STD_LOGIC_VECTOR (1 downto 0);</p><p><b>  begin</b></p><p><b>  q1<=a;</b></p><p>  q2<=b;

13、

14、 </p><p><b>  q4<=sel;</b></p><p>  process(q4,q3)

15、 </p><p><b>  begin</b></p><p>  case q4 is</p><p>  when "00" => ----加減乘算法</p><p>  q3<=q1+q2;<

16、;/p><p><b>  s<=q3;</b></p><p>  when "01" =></p><p>  if(q1>q2)then</p><p>  q3<= q1-q2;</p><p><b>  s<=q3;</b&

17、gt;</p><p><b>  else </b></p><p>  q3<=q2-q1;</p><p><b>  s<=q3;</b></p><p><b>  end if;</b></p><p>  when "

18、10"=></p><p>  q3<=q1*q2;</p><p><b>  s<=q3;</b></p><p>  when "11"=></p><p>  q3<=q1*q2;</p><p><b>  s<

19、=q3;</b></p><p>  when others=></p><p>  q3<="00000000";</p><p><b>  s<=q3;</b></p><p><b>  end case;</b></p>&l

20、t;p>  end process;</p><p>  end Behavioral;</p><p>  2、八位二進(jìn)制數(shù)轉(zhuǎn)化成8421BCD碼模塊</p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEE

21、E.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  entity bcd is </p><p>  Port (s : in STD_LOGIC_VECTOR (7 downto 0);</p><p>  a : out STD_LO

22、GIC_VECTOR (3 downto 0);</p><p>  b : out STD_LOGIC_VECTOR (3 downto 0));</p><p><b>  end bcd;</b></p><p>  architecture Behavioral of bcd is</p><p>  sign

23、al q0: STD_LOGIC_VECTOR (7 downto 0);</p><p>  signal q1: STD_LOGIC_VECTOR (3 downto 0);</p><p>  signal q2: STD_LOGIC_VECTOR (3 downto 0);</p><p><b>  begin</b></p&g

24、t;<p>  process(s)</p><p><b>  begin</b></p><p><b>  q0<=s;</b></p><p>  case q0 is ----把八位二進(jìn)制數(shù)轉(zhuǎn)化為8421BCD碼</p><p>

25、;  when"00000000"=></p><p>  q1<="0000";q2<="0000";</p><p>  when"00000001"=></p><p>  q1<="0000";q2<="0001&

26、quot;;</p><p>  when"00000010"=></p><p>  q1<="0000";q2<="0010";</p><p>  when"00000011"=> </p><p>  …………………………….<

27、;/p><p>  3、四選一數(shù)據(jù)選擇器模塊</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_signed.all;</p><p>  entity mux4_1 is</p>

28、;<p><b>  port(</b></p><p>  d0,d1,d2,d3 :in std_logic_vector(3 downto 0);</p><p>  q :out std_logic_vector(3 downto 0);</p><p>  sel :in std_logic_vector(1 downt

29、o 0) );</p><p>  end mux4_1;</p><p>  architecture rtl of mux4_1 is</p><p><b>  begin</b></p><p>  process(sel)</p><p>  begin

30、 ------實(shí)現(xiàn)從四個(gè)數(shù)據(jù)中選擇一個(gè)出來(lái)</p><p>  if(sel = "00") then</p><p><b>  q<=d0;</b></p><p>  elsif(sel = "01")then</p><p><b>  q&l

31、t;=d1;</b></p><p>  elsif(sel = "10")then</p><p><b>  q<=d2;</b></p><p>  elsif(sel = "11")then</p><p><b>  q<=d3;<

32、/b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end rtl;</b></p><p>  4、七段顯示譯碼器模塊</p><p>  library ieee;</p>

33、<p>  use ieee.std_logic_1164.all;</p><p>  entity bcd_7dis is</p><p>  port (bcdm: in std_logic_vector(3 downto 0);</p><p>  a,b,c,d,e,f,g : out std_logic);</p><p

34、>  end bcd_7dis;</p><p>  architecture art of bcd_7dis is</p><p>  signal w : std_logic_vector(6 downto 0);</p><p><b>  begin</b></p><p>  process(bcdm)&

35、lt;/p><p><b>  begin</b></p><p>  a<=w(6);b<=w(5);c<=w(4);d<=w(3);e<=w(2);f<=w(1);g<=w(0);</p><p>  case bcdm is -----實(shí)現(xiàn)8421碼轉(zhuǎn)化為2進(jìn)制碼的轉(zhuǎn)換</p>

36、<p>  when "0000" =>w<="1111110";</p><p>  when "0001" =>w<="0110000";</p><p>  when "0010" =>w<="1101101";<

37、/p><p>  when "0011" =>w<="1111001";</p><p>  when "0100" =>w<="0110011";</p><p>  when "0101" =>w<="1011011&qu

38、ot;;</p><p>  when "0110" =>w<="1011111";</p><p>  when "0111" =>w<="1110000";</p><p>  when "1000" =>w<="11

39、11111";</p><p>  when "1001" =>w<="1111011";</p><p>  when "1100" =>w<="0000001";</p><p>  when others =>w<="0000

40、000";</p><p><b>  end case;</b></p><p>  end process;</p><p><b>  end art;</b></p><p><b>  5、模4計(jì)數(shù)器模塊</b></p><p>  

41、library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_signed.all;</p><p>  entity mo4 is</p><p><b>  port(</b></p><p>

42、;  q :out std_logic_vector(1 downto 0);</p><p>  clk :in std_logic);</p><p><b>  end mo4;</b></p><p>  architecture rtl of mo4 is</p><p>  signal qcl : std_

43、logic_vector(1 downto 0);</p><p><b>  begin</b></p><p>  process(clk) </p><p>  begin ----實(shí)現(xiàn)模為4的計(jì)數(shù)</p><p>  if(clk&

44、#39;event and clk = '1')then </p><p>  if(qcl = "11")then</p><p>  qcl <= "00";</p><p><b>  else</b></p><p>  qcl <= qcl +

45、 '1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  q <= qcl;</b></p><p>  end process;</p><p>

46、;<b>  end rtl;</b></p><p><b>  6、模8計(jì)數(shù)器塊</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.al

47、l;</p><p>  entity count_8 is</p><p>  port( clk:in std_logic;</p><p>  ql :out std_logic_vector(2 downto 0));</p><p>  end count_8;</p><p>  architecture

48、rt1 of count_8 is</p><p>  signal qcl:std_logic_vector(2 downto 0);</p><p><b>  begin </b></p><p>  process(clk)</p><p>  begin

49、 ---- 實(shí)現(xiàn)模8的計(jì)數(shù)</p><p>  if(clk'event and clk='1') then</p><p>  if (qcl="111") then </p><p>  qcl<="000";</p><p><b>  else <

50、/b></p><p>  qcl<=qcl+'1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  ql<=qcl;</b></p><

51、p>  end process;</p><p><b>  end rt1;</b></p><p><b>  7、3—8譯碼器塊</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p>&

52、lt;p>  entity decode3_8 is</p><p>  port(d :in std_logic_vector(2 downto 0);</p><p>  y :out std_logic_vector(7 downto 0));</p><p>  end decode3_8 ;</p><p>  archi

53、tecture rt1 of decode3_8 is</p><p><b>  begin </b></p><p>  process(d)</p><p><b>  begin </b></p><p>  case d is ------

54、實(shí)現(xiàn)3對(duì)8的譯碼</p><p>  when "000"=>y<="10000000";</p><p>  when "001"=>y<="01000000";</p><p>  when "010"=>y<="00

55、100000";</p><p>  when "011"=>y<="00010000";</p><p>  when others=>y<="00000000";</p><p><b>  end case;</b></p><

56、;p>  end process;</p><p><b>  end rt1;</b></p><p><b>  六、各模塊仿真結(jié)果</b></p><p><b>  1、計(jì)算器模塊</b></p><p>  2、八位二進(jìn)制數(shù)轉(zhuǎn)化成8421BCD碼模塊</p

57、><p>  3.、四選一數(shù)據(jù)選擇器模塊</p><p>  4、七段顯示譯碼器模塊</p><p><b>  5、模4計(jì)數(shù)器模塊</b></p><p><b>  6、模8計(jì)數(shù)器塊</b></p><p><b>  7、3—8譯碼器塊</b><

58、/p><p><b>  8、整體仿真</b></p><p>  七、管腳鎖定及硬件實(shí)現(xiàn)</p><p><b>  1、管腳鎖定</b></p><p><b>  2、文件下載</b></p><p>  將 文件下載完后在硬件實(shí)驗(yàn)箱中進(jìn)行仿真檢查。&

59、lt;/p><p><b>  八、總結(jié)</b></p><p><b>  1問(wèn)題及改正</b></p><p>  經(jīng)過(guò)幾天的學(xué)習(xí)和上,,完成了文本的輸入形式簡(jiǎn)單計(jì)算器的電路,在設(shè)計(jì)過(guò)程中出現(xiàn)了諸多問(wèn)題。</p><p>  首先是對(duì)VHDL語(yǔ)言接觸的時(shí)間,小學(xué)期時(shí)間短,做課程設(shè)計(jì)感受很倉(cāng)促,沒(méi)有過(guò)

60、多的時(shí)間去系統(tǒng)的學(xué)習(xí)這門(mén)課程。不像C++這門(mén)語(yǔ)言課程設(shè)計(jì)是先經(jīng)過(guò)了一個(gè)學(xué)期的學(xué)習(xí)再做的,那樣感覺(jué)起來(lái)能從最根本的原理入手,在逐步提高,收獲也較多。</p><p>  其次是實(shí)驗(yàn)過(guò)程中解決問(wèn)題的方法不多,實(shí)驗(yàn)室不能上網(wǎng),無(wú)法從網(wǎng)上搜索解決的辦法,書(shū)上有些知識(shí)描述的也不是太清楚。</p><p>  最后是自己的原因,由于課程設(shè)計(jì)遇到的問(wèn)題較多,自己沒(méi)能保持好一個(gè)良好的心態(tài),遇到問(wèn)題很著急,

61、影響了問(wèn)題的解決和思考。</p><p><b>  2、心得體會(huì)</b></p><p>  經(jīng)過(guò)幾天的課程設(shè)計(jì)獲益良多,有成功也有失敗,有喜悅也有著急,但學(xué)習(xí)只是一個(gè)過(guò)程,在這個(gè)過(guò)程中才能使我們積累經(jīng)驗(yàn)和逐漸成熟,在今后的學(xué)習(xí)和生活當(dāng)中,要提高自己的分析問(wèn)題和解決問(wèn)題的能力,學(xué)會(huì)從不同的角度考慮問(wèn)題。 </p><p><b>

溫馨提示

  • 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ù)僅提供信息存儲(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)論