課程設(shè)計---模7加法器_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  摘要:本次課程設(shè)計是設(shè)計一個模7加法器,并用VHDL在結(jié)構(gòu)化層面對其進行描述,然后利用modelsim進行仿真,并得到期望的效果。</p><p><b>  正文:</b></p><p>  第一章:實驗任務(wù)及原理。</p><

2、p><b> ?。?)任務(wù)指標(biāo):</b></p><p>  通過模7加法器的設(shè)計,第一,加深對數(shù)字電路相關(guān)知識的理解,學(xué)會應(yīng)用,第二,初步掌握VHDL這種不同于C語言的硬件描述語言,第三,了解并熟悉modelsim仿真軟件的使用方法。</p><p><b>  (2)功能需求:</b></p><p>  設(shè)計模

3、7加法器,并用VHDL在結(jié)構(gòu)層面上對其進行描述,通過仿真驗證其可行性。</p><p><b>  (3)原理闡述:</b></p><p>  模7加法器的實現(xiàn)電路框圖在后面部分給出,這里主要從VHDL描述的層面給出大致原理。先建立一個半加器實體,然后用半加器構(gòu)造全加器實體,再用全加器構(gòu)造3bit加法器實體,最后用3bit加法器構(gòu)造模7加法器實體。</p>

4、;<p>  第二章:設(shè)計思路方法及方案。</p><p>  由于考慮到這次課程設(shè)計并不復(fù)雜,因此在設(shè)計方法上采用自頂向下和自底向上方法的結(jié)合。自頂向下,即先確定模7加法器的輸入端口輸出端口的功能屬性。自底向上,即從最低層的功能模塊開始設(shè)計,比如說,我這次就先設(shè)計半加器,然后用半加器構(gòu)造全加器,之后再用全加器構(gòu)造3bit加法器,最終由全加器加上一部分組合邏輯電路形成模7加法器。這種方式,層次結(jié)構(gòu)清

5、晰,便于描述。</p><p>  第三章:原理框圖及波形仿真。</p><p><b>  原理圖:</b></p><p><b>  波形仿真:</b></p><p>  以上是對所有情況的輸入進行了遍歷,發(fā)現(xiàn)結(jié)果都是與預(yù)期的結(jié)果一致,說明仿真成功,達到了課程設(shè)計的要求。</p>

6、<p><b>  第四章:結(jié)束語。</b></p><p>  雖然這個課程設(shè)計比較簡單,但是由于初次接觸VHDL,在用它描述設(shè)計好的模7加法器時仍然感覺非常的不順手,但是通過連續(xù)幾天的學(xué)習(xí)VHDL語言,我還是掌握的VHDL描述電路的一些基本方法,當(dāng)然要徹底掌握好VHDL還是需要大量的實踐才行。</p><p>  在這次課程設(shè)計中,我寫了四個實體,分

7、別是半加器,全加器,3bit加法器,模7加法器,但是我只寫了模7的test bench。后來知道老師給我指出了只寫一個test bench的不足之處。比如說,在寫一個比較大的系統(tǒng)時,如果只對最終的系統(tǒng)進行仿真,而且出了問題,我們就不知道到底是哪個地方出錯,很難找出錯誤。而,我們要是對每一個模塊或者實體都寫一個test bench的話,那么我們在進行仿真是就能很快發(fā)現(xiàn)錯誤,提高設(shè)計效率。雖然這次我只寫一個test bench也仿真成功了,

8、但我明白,這只是因為這次課程設(shè)計比較簡單,以后我們真正遇到大的設(shè)計任務(wù)時,這種方法肯定不行,一定要養(yǎng)成對每一個模塊寫test bench的習(xí)慣才行。</p><p><b>  附加代碼:</b></p><p><b>  (1)半加器</b></p><p>  library ieee;</p><

9、;p>  use ieee.std_logic_1164.all;</p><p>  entity half_adder is</p><p>  port(A,B:in std_logic;S,C:out std_logic);</p><p>  end entity;</p><p>  architecture behave

10、of half_adder is</p><p><b>  begin</b></p><p>  S1:process(A,B)is</p><p><b>  begin</b></p><p>  S<=A xor B;</p><p>  end proces

11、s S1;</p><p>  C1:process(A,B)is</p><p><b>  begin</b></p><p>  C<=A and B;</p><p>  end process C1;</p><p>  end architecture behave;</p

12、><p><b> ?。?)全加器:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity full_adder is</p><p>  port(Cin,A,B:in std_logi

13、c;S,Cout:out std_logic);</p><p>  end entity full_adder;</p><p>  architecture behave of full_adder is</p><p>  component half_adder</p><p>  port(A,B:in std_logic;S,C:

14、out std_logic);</p><p>  end component;</p><p>  signal stemp:std_logic;</p><p>  signal ctemp:std_logic;</p><p>  signal ctemp2:std_logic;</p><p><b>

15、;  begin</b></p><p>  u1:half_adder</p><p>  port map(A=>A,B=>B,S=>stemp,C=>ctemp);</p><p>  u2:half_adder</p><p>  port map(A=>Cin,B=>stemp,C=&

16、gt;ctemp2,S=>S);</p><p>  Cout<=ctemp or ctemp2;</p><p>  end architecture;</p><p>  (3)3bit加法器:</p><p>  library ieee;</p><p>  use ieee.std_logic_1

17、164.all;</p><p>  entity bit_3_adder is</p><p>  port(A:in std_logic_vector(2 downto 0);</p><p>  B:in std_logic_vector(2 downto 0);</p><p>  Cin:in std_logic;</p>

18、;<p>  S:out std_logic_vector(2 downto 0);</p><p>  Cout:out std_logic);</p><p>  end entity bit_3_adder;</p><p>  architecture behave of bit_3_adder is</p><p> 

19、 component full_adder</p><p>  port(A,B,Cin:in std_logic;</p><p>  S,Cout:out std_logic);</p><p>  end component;</p><p>  signal ctemp0,ctemp1:std_logic;</p>&l

20、t;p><b>  begin</b></p><p>  u1:full_adder</p><p>  port map(A=>A(0),B=>B(0),Cin=>Cin,Cout=>ctemp0,S=>S(0));</p><p>  u2:full_adder</p><p>

21、  port map(A=>A(1),B=>B(1),Cin=>ctemp0,Cout=>ctemp1,S=>S(1));</p><p>  u3:full_adder</p><p>  port map(A=>A(2),B=>B(2),Cin=>ctemp1,Cout=>Cout,S=>S(2));</p>&

22、lt;p>  end architecture behave;</p><p><b> ?。?)模7加法器:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity mod_7_adder is<

23、/p><p>  port(A,B:in std_logic_vector(2 downto 0);S:out std_logic_vector(2 downto 0));</p><p>  end entity mod_7_adder;</p><p>  architecture behave of mod_7_adder is</p><p&

24、gt;  component bit_3_adder</p><p>  port(A:in std_logic_vector(2 downto 0);</p><p>  B:in std_logic_vector(2 downto 0);</p><p>  Cin:in std_logic;</p><p>  S:out std_lo

25、gic_vector(2 downto 0);</p><p>  Cout:out std_logic);</p><p>  end component;</p><p>  signal ctemp0,ctemp1:std_logic_vector(2 downto 0);</p><p>  signal control,contro

26、l1:std_logic;</p><p><b>  begin</b></p><p>  u1:bit_3_adder</p><p>  port map(A=>A,B=>B,Cin=>'0',S=>ctemp0,Cout=>control);</p><p>  u

27、2:bit_3_adder</p><p>  port map(A(0)=>control,A(1)=>'0',A(2)=>'0',Cin=>'0',B=>ctemp0,S=>ctemp1,Cout=>open);</p><p>  control1<=ctemp1(0)and ctemp1

28、(1)and ctemp1(2);</p><p>  Zmux: S<="000" when control1='1'else</p><p>  ctemp1; </p><p>  end architecture behave;</p><p> ?。?)test bench:<

29、/p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity test_bench is</p><p>  end entity;</p><p>  architecture behave of test_bench is&

30、lt;/p><p>  component mod_7_adder is</p><p>  port(A,B:in std_logic_vector(2 downto 0);S:out std_logic_vector(2 downto 0));</p><p>  end component;</p><p>  signal A,B,S:s

31、td_logic_vector(2 downto 0);</p><p><b>  begin</b></p><p>  u0:mod_7_adder port map(A=>A,B=>B,S=>S);</p><p><b>  process</b></p><p><

32、;b>  begin</b></p><p>  A<="000"; wait for 5 ns;</p><p>  A<="001"; wait for 5 ns;</p><p>  A<="010"; wait for 5 ns;</p><p

33、>  A<="011"; wait for 5 ns;</p><p>  A<="100"; wait for 5 ns;</p><p>  A<="101"; wait for 5 ns;</p><p>  A<="110"; wait for 5

34、ns;</p><p>  A<="111"; wait for 5 ns; </p><p>  wait on B;</p><p>  end process;</p><p><b>  process</b></p><p><b>  begin&l

35、t;/b></p><p>  B<="000"; wait for 40 ns;</p><p>  B<="001"; wait for 40 ns;</p><p>  B<="010"; wait for 40 ns;</p><p>  B<=

36、"011"; wait for 40 ns;</p><p>  B<="100"; wait for 40 ns;</p><p>  B<="101"; wait for 40 ns;</p><p>  B<="110"; wait for 40 ns;</

溫馨提示

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

評論

0/150

提交評論