欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      EDA可編程邏輯器件實驗心得體會完整版

      時間:2019-05-12 13:41:48下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《EDA可編程邏輯器件實驗心得體會完整版》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《EDA可編程邏輯器件實驗心得體會完整版》。

      第一篇:EDA可編程邏輯器件實驗心得體會完整版

      EDA

      可 編 程 邏 輯 器 件

      《實驗總結(jié)》

      學(xué)號:

      姓名:

      班級:

      EDA試驗心得體會

      當(dāng)看到這門課的時候,我最初的感覺是很無語,書本上一大堆看不懂的東西,沒有接觸過的VHDL語言和一些電路圖和實體,聽起來也是一塌糊涂,對EDA技術(shù)很陌生,也感到很茫然,也沒有信心,當(dāng)接觸到可編程器件的時候,看到大家同樣感到很迷惘。

      隨后在深入的學(xué)習(xí)中發(fā)現(xiàn)書本資料通過大量的圖示對PLD硬件特性與編程技術(shù)進(jìn)行了形象的講解,不僅融合了之前學(xué)習(xí)的關(guān)于電路設(shè)計的知識還將EDA的技術(shù)加入其中。對VHDL語言的詳盡講解更是讓我深刻理解了VHDL語言的編程原理。由于本門課程是一門硬件學(xué)習(xí)課程,所以實驗必不可少。通過課程最后實驗,我體會一些VHDL語言相對于其他編程語言的特點。在接觸VHDL語言之前,我已經(jīng)學(xué)習(xí)了C語言,匯編語言,而相對于這些語言的學(xué)習(xí),VHDL 具有明顯的特點。這不僅僅是由于VHDL 作為一種硬件描述語言的學(xué)習(xí)需要了解較多的數(shù)字邏輯方面的硬件電路知識,括目標(biāo)芯片基本結(jié)構(gòu)方面的知識更重要的是由于VHDL 描述的對象始終是客觀的電路系統(tǒng)。由于電路系統(tǒng)內(nèi)部的子系統(tǒng)乃至部分元器件的工作狀態(tài)和工作方式可以是相互獨立、互不相關(guān)的,也可以是互為因果的。這表明,在任一時刻,電 路 系 統(tǒng) 可 以 有 許 多 相關(guān) 和不相關(guān)的事件同時并行發(fā)生。例如可以在多個獨立的模塊中同時入行不同方式的數(shù)據(jù)交換和控制信號傳輸,這種并行工作方式是任何一種基于CPU 的軟件程序語言所無法描繪和實現(xiàn)的。傳統(tǒng)的軟件編程語言只能根據(jù)CPU 的工作方式,以排隊式指令的形式來對特定的事件和信息控制或接收。在CPU 工作的任一時間段內(nèi)只能完成一種操作。因此,任何復(fù)雜的程序在一個單CPU 的計算機中的運行,永遠(yuǎn)是單向和一維的。因而程序設(shè)計者也幾乎只以一維的思維模式就可以編程和工作了。在試驗箱上,編寫相應(yīng)的軟件即可,否則,只在計算機上模擬調(diào)試軟件,則無法了解單片機接口中各種控制信號的使用。還可幫助學(xué)會分析問題和解決問題的能力。這在單片機實驗報告中都要體現(xiàn)出來。

      這門課是一門理論性和實踐性都很強的專業(yè)基礎(chǔ)課,也是一門綜合性的技術(shù)基礎(chǔ)學(xué)科,它需要程序語言、數(shù)學(xué)、物理學(xué)、電子學(xué)、力學(xué)、機械等知識,同時還要掌握各種物理量的變換測定,以及實驗裝置的設(shè)計和數(shù)據(jù)分析等方面所涉及的基礎(chǔ)理論。許多測試?yán)碚摵头椒ㄖ挥型ㄟ^實際驗證才能加深理解并真正掌握。實驗就是使學(xué)生加深理解所學(xué)基礎(chǔ)知識,掌握各類典型傳感、記錄儀器的基本原理和適用范圍;具有測試系統(tǒng)的選擇及應(yīng)用能力;具有實驗數(shù)據(jù)處理和誤差分析能力;得到基本實驗技能的訓(xùn)練與分析能力的訓(xùn)練,使學(xué)生初步掌握測試技術(shù)的基本方法,具有初步獨立進(jìn)行電子信息工程測試的能力,對各門知識得到融會貫通的認(rèn)識和掌握,加深對理論知識的理解。實驗課是本門課程的重要環(huán)節(jié),其目的是培養(yǎng)學(xué)生的分析和解決實際問題的能力,從而掌握機械工程測試技術(shù)手段,為將來從事技術(shù)工作和科學(xué)研究奠定扎實的基礎(chǔ)。

      通過本門課程實驗,以下能力得到了較大的提高:

      了解了可編程邏輯器件操作的原理和應(yīng)用,以及試驗箱及軟件編譯環(huán)境的使用的注意事項及各種測試中不同問題的處理方法。

      在學(xué)習(xí)的過程中,我深深體會到,學(xué)習(xí)不單單要將理論知識學(xué)扎實了,更重要的是實際動手操作能力,學(xué)完了課本知識,我并沒有覺得自己有多大的提高,但是在隨后的實驗過程中我真的感覺學(xué)會了很多,學(xué)到了很多知識,在實踐中更加理解了書本上的理論知識的經(jīng)典所在以及這門學(xué)科的意義和用處!真心希望以后的課程都能將理論與實踐充分的結(jié)合起來,在實踐的過程中串聯(lián)書本的知識,讓理論化為實踐的力量!

      第二篇:EDA實驗4lxm

      實驗四 計數(shù)器與七段譯碼器及顯示的設(shè)計

      一 實驗?zāi)康?/p>

      1、掌握七段譯碼器的工作原理;

      2、學(xué)會用VHDL硬件描述語言進(jìn)行數(shù)字系統(tǒng)設(shè)計;

      3、學(xué)會運用波形仿真測試檢驗程序的正確性;

      4、用QuartusII完成基本組合電路的設(shè)計。

      二 實驗儀器

      PC機、Quartus II 6.0軟件、康芯EDA實驗箱

      三 實驗內(nèi)容

      選GW48系統(tǒng)的實驗電路模式6,用數(shù)碼8顯示譯碼輸出(PIO46-PIO40),鍵3到鍵8作為控制輸入端。完成計數(shù)器的數(shù)碼管顯示設(shè)計。

      四 實驗原理及步驟

      7段數(shù)碼是純組合電路,通常的小規(guī)模專用IC,如74或4000系列的器件只能作十進(jìn)制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA/CPLD中來實現(xiàn)。例6-18作為7段譯碼器,輸出信號LED7S的7位分別接如圖6-2數(shù)碼管的7個段,高位在左,低位在右。例如當(dāng)LED7S輸出為“1101101”時,數(shù)碼管的7個段:g、f、e、d、c、b、a分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。注意,這里沒有考慮表示小數(shù)點的發(fā)光管,如果要考慮,需要增加段h,例6-18中的LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)應(yīng)改為...(7 DOWNTO 0)。

      1、根據(jù)譯碼器真值表寫出原程序。

      譯碼器真值表:

      數(shù)

      輸入

      輸出

      值 A

      B C D a b c d e f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 A 0 1 0 1 1 1 0 1 1 1 B 1 0 1 1 0 0 1 1 1 1 1 C 1 1 0 0 1 0 0 1 1 1 0 D 1 1 0 1 0 1 1 1 1 0 1 E 1 1 1 0 1 0 0 1 1 1 1 F 1 1 1 1 1 0 0 0 1 1 1

      三、實驗內(nèi)容:

      1、說明下列程序中各語句的含義,以及該例的整體功能。在Quartus II 6.0上對以下該例進(jìn)行編輯、編譯、綜合、適配、仿真,給出其所有信號的時序仿真波形(提示:用輸入總線的方式給出輸入信號仿真數(shù)據(jù))。

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DecL7S IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE one OF DecL7S IS BEGIN PROCESS(A)BEGIN CASE A(3 DOWNTO 0)IS WHEN “0000” => LED7S <= “0111111”;--X“3F”?0 WHEN “0001” => LED7S <= “0000110”;--X“06”?1 WHEN “0010” => LED7S <= “1011011”;--X“5B”?2 WHEN “0011” => LED7S <= “1001111”;--X“4F”?3 WHEN “0100” => LED7S <= “1100110”;--X“66”?4 WHEN “0101” => LED7S <= “1101101”;--X“6D”?5 WHEN “0110” => LED7S <= “1111101”;--X“7D”?6 WHEN “0111” => LED7S <= “0000111”;--X“07”?7 WHEN “1000” => LED7S <= “1111111”;--X“7F”?8 WHEN “1001” => LED7S <= “1101111”;--X“6F”?9 WHEN “1010” => LED7S <= “1110111”;--X“77”?10 WHEN “1011” => LED7S <= “1111100”;--X“7C”?11 WHEN “1100” => LED7S <= “0111001”;--X“39”?12 WHEN “1101” => LED7S <= “1011110”;--X“5E”?13 WHEN “1110” => LED7S <= “1111001”;--X“79”?14 WHEN “1111” => LED7S <= “1110001”;--X“71”?15 WHEN OTHERS => NULL;END CASE;END PROCESS;END;

      圖3-1 共陰數(shù)碼管及其電路

      2、引腳鎖定以及硬件下載測試。建議選實驗電路模式6,用數(shù)碼8顯示譯碼輸出(PIO46--PIO40),鍵

      8、鍵

      7、鍵

      6、鍵5四位控制輸入,硬件驗證譯碼器的工作性能。

      3、用VHDL完成四位二進(jìn)制加法計數(shù)器設(shè)計,命名為CNT4B.4、用VHDL例化語句(參考實驗1中的1位全加VHDL文本輸入設(shè)計)按圖3-2 的方式,完成頂層文件設(shè)計,并重復(fù)以上實驗過程。注意圖3-2中的tmp是4位總線,led是7位總線。對于引腳鎖定和實驗,建議仍選實驗電路模式6,用數(shù)碼8顯示譯碼輸出,用鍵3作為時鐘輸入(每按2次鍵為1個時鐘脈沖),或直接時鐘信號clock0。

      圖3-2 計數(shù)器和譯碼器連接電路的頂層文件原理圖

      (提示:

      1、將教材P89頁程序和P154頁程序讀懂,分別建立工程、生成各自原理圖。

      2、將上述兩個原理圖按教材P155頁圖6-19連接起來建立新的原理圖設(shè)計文件。

      3、將上述原理圖文件編譯、仿真、引腳綁定,下載到實驗箱驗證。)

      四、實驗報告要求

      1、總結(jié)Quartus II 6.0 VHDL 中CASE語句應(yīng)用及多層次設(shè)計方法

      2、根據(jù)以上的實驗內(nèi)容寫出實驗報告,包括程序設(shè)計、軟件編譯、仿真分析、硬件測試和實驗過程;設(shè)計程序、程序分析報告、仿真波形圖及其分析報告;

      3、心得體會――本次實驗中你的感受;你從實驗中獲得了哪些收益;本次實驗?zāi)愕某晒χ?;本次實驗中還有待改進(jìn)的地方;下次實驗應(yīng)該從哪些地方進(jìn)行改進(jìn);怎樣提高自的實驗效率和實驗水平等等。

      五、問題與思考:

      只要求譯出數(shù)字0~9和“-”,怎樣修改程序?

      第三篇:EDA實驗總結(jié)報告

      數(shù)字EDA實驗報告--------------薛蕾0941903207

      數(shù)字EDA實驗 實驗報告

      學(xué)院: 計算機科學(xué)與工程學(xué)院 專業(yè): 通信工程 學(xué)號: 0941903207 姓名: 薛蕾 指導(dǎo)老師: 錢強

      數(shù)字EDA實驗報告--------------薛蕾0941903207 實驗一 四選一數(shù)據(jù)選擇器的設(shè)計

      一、實驗?zāi)康?/p>

      1、熟悉Quartus II軟件的使用。

      2、了解數(shù)據(jù)選擇器的工作原理。

      3、熟悉EDA開發(fā)的基本流程。

      二、實驗原理及內(nèi)容

      實驗原理

      數(shù)據(jù)選擇器在實際中得到了廣泛的應(yīng)用,尤其是在通信中為了利用多路信號中的一路,可以采用數(shù)據(jù)選擇器進(jìn)行選擇再對該路信號加以利用。從多路輸入信號中選擇其中一路進(jìn)行輸出的電路稱為數(shù)據(jù)選擇器?;颍涸诘刂沸盘柨刂葡?,從多路輸入信息中選擇其中的某一路信息作為輸出的電路稱為數(shù)據(jù)選擇器。數(shù)據(jù)選擇器又叫多路選擇器,簡稱MUX。4選1數(shù)據(jù)選擇器:

      (1)原理框圖:如右圖。

      D0、D1、D2、D3

      :輸入數(shù)據(jù) A1、A0

      :地址變量

      由地址碼決定從4路輸入中選擇哪1路輸出。

      (2)真值表如下圖:(3)邏輯圖

      數(shù)據(jù)選擇器的原理比較簡單,首先必須設(shè)置一個選擇標(biāo)志信號,目的就是為了從多路信號中選擇所需要的一路信號,選擇標(biāo)志信號的一種狀態(tài)對應(yīng)著一路信號。在應(yīng)用中,設(shè)置一定的選擇標(biāo)志信號狀態(tài)即可得到相應(yīng)的某一路信號。這就是數(shù)據(jù)選擇器的實現(xiàn)原理。

      三.實驗內(nèi)容

      1、分別采用原理圖和VHDL語言的形式設(shè)計4選1數(shù)據(jù)選擇器

      2、對所涉及的電路進(jìn)行編譯及正確的仿真。電路圖:

      四、實驗程序

      library ieee;use ieee.std_Logic_1164.all;

      ENTITY mux4 IS

      PORT(a0, a1, a2, a3 :IN STD_LOGIC;

      s :IN STD_LOGIC_VECTOR(1 DOWNTO 0);

      y :OUT STD_LOGIC);END mux4;ARCHITECTURE archmux OF mux4 IS

      BEGIN y <= a0 WHEN s = “00” else

      --當(dāng)s=00時,y=a0 a1 WHEN s = “01” else

      --當(dāng)s=01時,y=a1 a2 WHEN s = “10” else

      --當(dāng)s=10時,y=a2 a3;

      --當(dāng)s取其它值時,y=a2 END archmux;

      五、運行結(jié)果

      六.實驗總結(jié)

      真值表分析:

      當(dāng)js=0時,a1,a0取00,01,10,11時,分別可取d0,d1,d2,d3.實驗二 血型配對器的設(shè)計

      一、實驗?zāi)康?/p>

      1、進(jìn)一步熟悉Quartus II軟件的使用。

      2、掌握簡單組合邏輯電路的設(shè)計方法與功能仿真技巧。

      3、進(jìn)一步學(xué)習(xí)Quartus II中基于原理圖設(shè)計的流程。

      二、實驗原理及內(nèi)容

      實驗原理

      人類有O、A、B、AB 4種基本血型,輸血者與受血者的血型必須符合圖示原則。設(shè)計一血型配對電路,用以檢測輸血者與受血者之間的血型關(guān)系是否符合,如果符合,輸出為1,否則為0。

      已知: AB血型是萬能受血者,O血型是萬能獻(xiàn)血者!如果要輸血給O型血,那么可以的血型是O型!如果要輸血給A型血,那么可以的血型是A,O型!如果要輸血給B型血,那么可以的血型是B,O型!

      如果要輸血給AB型血,那么可以的血型是A,B,AB,O型!

      輸血者

      受血者

      O A

      O A B AB

      B AB

      三.實驗內(nèi)容

      1、用VHDL語言編寫程序?qū)崿F(xiàn)血型配對器的功能 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Vxuexing IS PORT(P,Q,R,S:IN STD_LOGIC;F:OUT STD_LOGIC);END Vxuexing;ARCHITECTURE A OF Vxuexing IS BEGIN

      F<=((NOT P)AND(NOT Q))OR(R AND S)OR((NOT P)AND S)OR((NOT Q)AND R);END A;

      2、對所編寫的電路進(jìn)行編譯及正確的仿真。

      實驗分析 真值表

      PQRSF***************11111

      P,Q表示輸血者的血型;R,S,表示受血者的血型。當(dāng)兩者符合血型配合原則時,F(xiàn)=1,否則為0.四、運行結(jié)果

      五、實驗總結(jié)

      本實驗給出了四種不同的血型編碼,PQ(1,1),RS(1,1)表示AB型血,P,Q(1,0),RS(1,0)表示B型血,PQ(0,1),RS(0,1)表示A型血,PQ(0,0),RS(0,0)表示O型血。根據(jù)真值表,并根據(jù)實驗的原理圖,畫出電路圖并進(jìn)行連接。

      實驗三 簡單數(shù)字鐘的設(shè)計

      一、實驗?zāi)康?/p>

      1、了解數(shù)字鐘的工作原理。

      2、進(jìn)一步學(xué)習(xí)Quartus II中基于VHDL設(shè)計的流程。

      3、掌握VHDL編寫中的一些小技巧。

      4、掌握簡單時序邏輯電路的設(shè)計方法與功能仿真技巧。

      二、實驗原理及內(nèi)容

      實驗原理

      簡單數(shù)字鐘應(yīng)該具有顯示時-分-秒的功能。首先要知道鐘表的工作機理,整個鐘表的工作應(yīng)該是在1Hz信號的作用下進(jìn)行,這樣每來一個時鐘信號,秒增加1秒,當(dāng)秒從59秒跳轉(zhuǎn)到00秒時,分鐘增加1分,同時當(dāng)分鐘從59分跳轉(zhuǎn)

      三.實驗內(nèi)容

      1、用原理圖的方式編寫一個12/24進(jìn)制的計數(shù)器,并創(chuàng)建為SYMBOL文件。

      2、用VHDL的方式編寫一個60進(jìn)制的計數(shù)器,并創(chuàng)建為SYMBOL文件。

      3、創(chuàng)建頂層文件。調(diào)用已編寫的SYMBOL文件,設(shè)計簡單的數(shù)字鐘電路。

      2、對所編寫的電路進(jìn)行編譯及正確的仿真。

      二十四進(jìn)制VHDL LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT24 IS PORT(CP, EN, Rd, LD :IN STD_LOGIC;

      D

      :IN STD_LOGIC_VECTOR(5 DOWNTO 0);

      Co

      :OUT STD_LOGIC;Q

      :OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END CNT24;ARCHITECTURE STR OF CNT24 IS

      SIGNAL QN : STD_LOGIC_VECTOR(5 DOWNTO 0);

      BEGIN Co<= '1'WHEN(QN = “010111”AND EN='1')

      ELSE '0';PROCESS(CP, RD)

      BEGIN IF(Rd ='0')THEN

      QN<= “000000”;ELSIF(CP'EVENT AND CP='1')THEN IF(LD='0')THEN QN <= D;

      ELSIF(EN='1')THEN QN <= QN+1;END IF;END IF;END PROCESS;Q <= QN;END STR;

      六十進(jìn)制VHDL LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jsq60 IS PORT(en,rd,cp :IN STD_LOGIC;

      qh:buffer STD_LOGIC_VECTOR(3 DOWNTO 0);

      ql :buffer STD_LOGIC_VECTOR(3 DOWNTO 0);

      Co :OUT STD_LOGIC);END jsq60;ARCHITECTURE b OF jsq60 IS BEGIN Co<='1'when(qh=“0101”and ql=“1001” and en='1')else'0';PROCESS(cp,rd)

      BEGIN IF(rd='0')THEN qh<=“0000”;ql<=“0000”;ELSIF(cp'EVENT AND cp='1')THEN

      IF(en='1')THEN

      IF(ql=9)THEN

      ql<=“0000”;

      IF(qh=5)THEN

      qh<=“0000”;

      ELSE qh<=qh+1;

      end if;

      else

      ql<=ql+1;

      end if;

      end if;

      END IF;END PROCESS;END b;

      原理圖

      四、運行結(jié)果

      24進(jìn)制

      60進(jìn)制

      時鐘仿真結(jié)果

      五、實驗總結(jié)

      此設(shè)計問題可分為主控電路,計數(shù)器模塊和掃描顯示三大部分,計數(shù)器在之前的學(xué)習(xí)中已經(jīng)非常熟悉,只要掌握60,12進(jìn)制的技術(shù)規(guī)律,用同步或異步計數(shù)器都可以實現(xiàn)。二掃描電路我們學(xué)過兩種驅(qū)動方式:BCD碼驅(qū)動方式和直接驅(qū)動方式。

      實驗四 簡單交通燈的設(shè)計

      一、實驗?zāi)康?/p>

      1、了解交通燈的亮滅規(guī)律。

      2、了解交通燈控制器的工作原理。

      3、進(jìn)一步熟悉VHDL語言編程,了解實際設(shè)計中的優(yōu)化方案。

      二、實驗原理及內(nèi)容

      實驗原理

      交通燈的顯示有很多方式,如十字路口、丁字路口等,而對于同一個路口又有很多不同的顯示要求,比如十字路口,車子如果只要東西和南北方向通行就很簡單,而如果車子可以左右轉(zhuǎn)彎的通行就比較復(fù)雜,本實驗僅針對最簡單的南北和東西直行的情況。

      要完成本實驗,首先必須了解交通路燈的亮滅規(guī)律。依人們的交通常規(guī),“紅燈停,綠燈行,黃燈提醒”。其交通燈的亮滅規(guī)律為:初始態(tài)是兩個路口的紅燈全亮,之后東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間后,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次后,東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,延時一段時間后,南北路口的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到東西路口方向,重復(fù)上述過程。

      三.實驗內(nèi)容

      1、用VHDL的方式編寫一個簡單的交通控制燈電路

      2、對所編寫的電路進(jìn)行編譯及正確的仿真。

      程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      entity traffic is port(clk,enb : in std_logic;

      ared,agreen,ayellow,bred,bgreen,byellow : buffer std_logic;

      acounth,acountl,bcounth,bcountl : buffer std_logic_vector(3 downto 0));end traffic;

      architecture one of traffic is begin process(clk,enb)variable lightstatus : std_logic_vector(5 downto 0);begin

      if(clk'event and clk='1')then lightstatus := ared&agreen&ayellow&bred&bgreen&byellow;if((acounth=“0000” and acountl=“0000”)or(bcounth=“0000” and bcountl=“0000”))then Case lightstatus is When “010100”=> lightstatus:=“001100”;acountl<=“0101”;acounth<=“0000”;bcountl<=“0101”;bcounth<=“0000”;When “001100”=> if(enb='1')then lightstatus:=“100010”;acountl<=“0000”;acounth<=“0011”;bcountl<=“0101”;bcounth<=“0010”;

      else lightstatus:=“010100”;acountl<=“0101”;acounth<=“0100”;bcountl<=“0000”;bcounth<=“0101”;end if;

      when “100010”=>

      lightstatus:=“100001”;acountl<=“0101”;acounth<=“0000”;bcountl<=“0101”;bcounth<=“0000”;

      when “100001”=>

      lightstatus:=“010100”;acountl<=“0101”;acounth<=“0100”;bcountl<=“0000”;bcounth<=“0101”;

      when others=> lightstatus:=“010100”;acountl<=“0101”;acounth<=“0100”;bcountl<=“0000”;bcounth<=“0101”;

      end case;else if(acountl=“0000”)then acounth<=acounth-1;acountl<=“1001”;

      else acountl<=acountl-1;

      end if;

      if(bcountl=“0000”)then bcounth<=bcounth-1;bcountl<=“1001”;

      else bcountl<=bcountl-1;end if;end if;end if;

      ared<=lightstatus(5);agreen<=lightstatus(4);ayellow<=lightstatus(3);

      bred<=lightstatus(2);bgreen<=lightstatus(1);byellow<=lightstatus(0);end process;end one;

      四、運行結(jié)果

      分析:

      這里a代表東西方向,b代表南北方向,acounth是表示東西方向五進(jìn)制計數(shù)acountl是東西方向六進(jìn)制計數(shù),bcounth則表示南北方向五進(jìn)制,bounthl則是南北方向六進(jìn)制計數(shù) 東西方向為0時,東西方向紅燈亮(ared=1)

      東西方向在1~4之間,東西方向綠燈亮(即agreen=1)南北方向 的紅燈亮起(即bred=1)

      五、實驗總結(jié)

      此設(shè)計問題可分為主控電路,譯碼驅(qū)動電路和掃描顯示部分。

      但是,這遠(yuǎn)遠(yuǎn)不能滿足實際生活的需要,還應(yīng)設(shè)置倒計時秒數(shù),因此可在此電路基礎(chǔ)上外加一個定時模塊。

      實驗五 流水燈的設(shè)計

      一、實驗?zāi)康?/p>

      1、了解流水燈的工作原理。

      二、實驗原理及內(nèi)容

      實驗原理

      要完成本實驗,首先必須了解流水燈的原理。所謂的流水燈實際上就是由多個LED發(fā)光二極管構(gòu)成的電路,當(dāng)發(fā)光二極管可以依次點亮?xí)r,即能呈現(xiàn)流水的效果。實驗內(nèi)容

      1、設(shè)計能帶8個LED發(fā)光管發(fā)光,并按照要求輪流發(fā)光,產(chǎn)生流水燈的流動效果。

      2、應(yīng)具有兩種以上不同風(fēng)格的流動閃亮效果。比如依次點亮或者依次熄滅。(選作)

      3、有起動、停止控制鍵。(選作)

      4、有流動閃亮效果選擇設(shè)置鍵。(選作)

      5、對所編寫的電路進(jìn)行編譯及正確的仿真。

      三、實驗程序

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yiweijicun1 IS PORT(CP,R,DSR,DSL:IN STD_LOGIC;

      S:STD_LOGIC_VECTOR(2 DOWNTO 0);

      D:STD_LOGIC_VECTOR(7 DOWNTO 0);

      Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END yiweijicun1;ARCHITECTURE yiweijicun_arch OF yiweijicun1 IS

      SIGNAL IQ: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(CP,R,IQ)BEGIN IF(R='1')THEN IQ <=(OTHERS =>'0');ELSIF(CP'EVENT AND CP ='1')THEN CASE CONV_INTEGER(S)IS WHEN 0=>NULL;WHEN 1=> IQ <= D;WHEN 2=> IQ <= DSR & IQ(7 DOWNTO 1);WHEN 3=> IQ <=IQ(6 DOWNTO 0)& DSL;WHEN 4=> IQ <= IQ(0)& IQ(7 DOWNTO 1);WHEN 5=> IQ <=IQ(6 DOWNTO 0)& IQ(7);WHEN 6=> IQ <= IQ(7)& IQ(7 DOWNTO 1);WHEN 7=> IQ <= IQ(6 DOWNTO 0)& IQ(0);WHEN OTHERS => NULL;END CASE;END IF;Q <= IQ;END PROCESS;END yiweijicun_arch;

      四、運行結(jié)果

      結(jié)果分析:

      d[0]~d[7]為八個輸入端,s[0]和s[1]控制流水燈得輸出,s=1保持,s=2實現(xiàn)左移功能,s=3實現(xiàn)右移功能,因為延遲的原因,在s=2時,需要經(jīng)過一段時間才能實現(xiàn)循環(huán)右移的功能,流水燈的實現(xiàn)其實是運用了8位移位寄存器,它只是運用了其中的保持左移與右移的功能,8LO位移位寄存器還有循環(huán)右移,循環(huán)左移,算數(shù)右移,算數(shù)左移等功能。

      五、實驗總結(jié)

      了解了移位寄存器的功能和原理

      通過這次實驗,加深了VHDL語言的運用能力,更進(jìn)一步了解了8位移位寄存器的功能。

      實驗六 乘法器的設(shè)計

      一、實驗?zāi)康?/p>

      1、了解乘法器的工作原理。

      2、了解復(fù)雜時序電路的設(shè)計流程。

      二、實驗原理及內(nèi)容

      實驗原理

      具體設(shè)計原理參見教材188頁。實驗內(nèi)容

      1、設(shè)計一個能進(jìn)行兩個十進(jìn)制數(shù)相乘的乘法器,乘數(shù)和被乘數(shù)均小于100。(可以參考教材231頁的VHDL代碼來設(shè)計)

      2、對所編寫的電路進(jìn)行編譯及正確的仿真。

      三、實驗程序

      library IEEE;use IEEE.std_logic_1164.all;

      entity one_bit_adder is port(A: in STD_LOGIC;B: in STD_LOGIC;C_in: in STD_LOGIC;S: out STD_LOGIC;C_out: out STD_LOGIC);end one_bit_adder;

      architecture one_bit_adder of one_bit_adder is begin

      S <= A xor B xor C_in;C_out <=(A and B)or(C_in and(A xor B));

      end one_bit_adder;library IEEE;use IEEE.std_logic_1164.all;

      entity sichen is port(A: in STD_LOGIC_VECTOR(3 downto 0);B: in STD_LOGIC_VECTOR(3 downto 0);data_out: out STD_LOGIC_VECTOR(6 downto 0));end sichen;

      architecture multi_arch of sichen is signal A_MULT_B0: STD_LOGIC_VECTOR(2 downto 0);signal A_MULT_B1: STD_LOGIC_VECTOR(2 downto 0);signal A_MULT_B2: STD_LOGIC_VECTOR(2 downto 0);

      signal S_TEMP1: STD_LOGIC_VECTOR(1 downto 0);signal S_TEMP2: STD_LOGIC_VECTOR(1 downto 0);

      signal C_TEMP : STD_LOGIC_VECTOR(6 downto 0);

      signal C0_out_B0, C1_out_B0, C2_out_B0 : STD_LOGIC;signal C0_out_B1, C1_out_B1, C2_out_B1 : STD_LOGIC;

      signal ZERO: STD_LOGIC;

      component one_bit_adder port(A: in STD_LOGIC;B: in STD_LOGIC;C_in: in STD_LOGIC;S: out STD_LOGIC;C_out: out STD_LOGIC);end component;begin U_0_0 : one_bit_adder port map(A => A_MULT_B0(1), B => A_MULT_B1(0), C_in => ZERO, S => C_TEMP(1), C_out => C0_out_B0);U_0_1 : one_bit_adder port map(A => A_MULT_B0(2), B => A_MULT_B1(1), C_in => C0_out_B0, S => S_TEMP1(0), C_out => C1_out_B0);U_0_2 : one_bit_adder port map(A => ZERO, B => A_MULT_B1(2), C_in => C1_out_B0, S => S_TEMP1(1), C_out => C2_out_B0);

      U_1_0 : one_bit_adder port map(A => A_MULT_B2(0), B => S_TEMP1(0), C_in => ZERO, S => C_TEMP(2), C_out => C0_out_B1);U_1_1 : one_bit_adder port map(A => A_MULT_B2(1), B => S_TEMP1(1), C_in => C0_out_B1, S => S_TEMP2(0), C_out => C1_out_B1);U_1_2 : one_bit_adder port map(A => A_MULT_B2(2), B => C2_out_B0, C_in => C1_out_B1, S => S_TEMP2(1), C_out => C2_out_B1);

      A_MULT_B0(0)<= A(0)and B(0);A_MULT_B0(1)<= A(1)and B(0);A_MULT_B0(2)<= A(2)and B(0);

      A_MULT_B1(0)<= A(0)and B(1);A_MULT_B1(1)<= A(1)and B(1);A_MULT_B1(2)<= A(2)and B(1);

      A_MULT_B2(0)<= A(0)and B(2);A_MULT_B2(1)<= A(1)and B(2);A_MULT_B2(2)<= A(2)and B(2);

      ZERO <= '0';C_TEMP(0)<= A_MULT_B0(0);C_TEMP(4 downto 3)<= S_TEMP2(1 downto 0);C_TEMP(5)<= C2_out_B1;

      C_TEMP(6)<= A(3)xor B(3);

      data_out <= C_TEMP;

      end multi_arch;

      四、運行結(jié)果

      乘法器實現(xiàn)A,B兩數(shù)的相乘。A[0]~A[3]以及B[0]~B[3]是實現(xiàn)輸入端的控制。由圖看出,輸出上產(chǎn)生了延遲是因為當(dāng)A[3]輸入1,對應(yīng)了十進(jìn)制的8,B[0]輸入1,對應(yīng)了十進(jìn)制的1,兩者相乘得8,即在data_out端應(yīng)輸出8,此處因仍存在競爭冒險。

      五、實驗總結(jié)

      乘法器的設(shè)計的問題可以分為乘數(shù)和被乘數(shù)控制模塊,寄存模塊,乘法模塊和掃描顯示模塊幾個部分。

      兩數(shù)相乘的方法很多,可以用移位相加的方法,也可以將乘法器看成計數(shù)器,乘積的初始值為零,每一個時鐘周期將被乘數(shù)的值加到積上,同時乘數(shù)減一,這樣反復(fù)執(zhí)行,直到乘數(shù)為零。

      第四篇:EDA實驗六1315212017

      《電子設(shè)計自動化實驗》課程設(shè)計

      題 目: 十六位硬件乘加器電路 姓 名: 江 璐 學(xué)院班級: 13級電子信息工程2班 學(xué) 號: 1315212017 指導(dǎo)老師: 邱應(yīng)強老師 時 間: 20151122 目 錄 一:摘要……………………………………………………3 二: 正文……………………………………………………3(一)系統(tǒng)設(shè)計………………………………………………3(二)單元電路設(shè)計…………………………………………4(三)仿真結(jié)果………………………………………………9(四)軟件設(shè)計………………………………………………11(五)系統(tǒng)測試………………………………………………11(六)結(jié)論……………………………………………………14 三:參考文獻(xiàn)………………………………………………14 四:附錄……………………………………………………15 六:心得體會………………………………………………16 一:摘要

      1.實驗要求:采用并行、串行或流水線方式來實現(xiàn)對8個16位數(shù)據(jù)進(jìn)行乘法和加法運算(yout=a0?b0+a1?b1+a2?b2+a3?b3),位寬16位。

      2.實驗方法:使用乘法器lpm_mult2、16位加法器ADDER16B、計數(shù)器cnt16以及鎖存器en_dff四個模塊。當(dāng)clock出現(xiàn)上升沿時,對輸入端輸入的兩個數(shù)dataa、datab進(jìn)行乘法運算。將結(jié)果輸入鎖存器中,鎖存上一階段計算得到的值,16位加法器ADDER16B將鎖存器鎖存的上一階段的值與進(jìn)行完乘法計算得到的值dataa*datab加起來,并輸出結(jié)果。計數(shù)器cnt16用于區(qū)分四組乘加所得數(shù),當(dāng)有一個上升沿脈沖送入cnt16時,若計數(shù)不到5,則進(jìn)行計數(shù)+1,若計數(shù)達(dá)到5,COUT輸出進(jìn)位信號到鎖存器en_dff的reset端口,將鎖存器復(fù)位清零,重新進(jìn)行計數(shù)。

      3.實驗結(jié)論:經(jīng)過仿真與硬件測試檢驗后證實可行,但是是對8個8位數(shù)據(jù)進(jìn)行乘法和加法運算。

      二:正文

      (一)系統(tǒng)設(shè)計

      1.設(shè)計要求

      采用并行、串行或流水線方式來實現(xiàn)對8個16位數(shù)據(jù)進(jìn)行乘法和加法運算(yout=a0*b0+a1*b1+a2*b2+a3*b3),位寬16位。

      2.系統(tǒng)設(shè)計方案

      (1)系統(tǒng)設(shè)計思路:由十六位加法器構(gòu)成以時序邏輯方式設(shè)計的十六位乘加器,流水線方式,以移位加法為核心器件。(2)總體方案的論證與比較

      方案一:采用四個乘法器,以串行方式輸入各數(shù)據(jù)。

      方案二:采用一個乘法器,先輸入兩數(shù)據(jù)進(jìn)行運算,將得到結(jié)果保存,并與下一組乘法運算得到的結(jié)果相加。

      方案的選擇:第一種方案浪費大量的資源,考慮到實驗箱條件限制,采用第二種方案。盡管速度較慢,但可省下相當(dāng)多的資源,并且實驗室可以實現(xiàn)。(3)各功能塊的劃分與組成

      共有4個設(shè)計模塊,分別是乘法器lpm_mult0、16位加法器ADDER16B、計數(shù)器cnt16以及鎖存器en_dff。(4)系統(tǒng)的工作原理

      以上是電路原理圖。乘數(shù)dataa與被乘數(shù)datab輸入乘法器lpm_mult0中,當(dāng)START有上升沿出現(xiàn)時,乘法器計算出dataa*datab的結(jié)果并有result[15..0]輸出。result[15..0]輸出的結(jié)果送入8位加法器ADDER8B的A[15..0]輸入端,加法器的B[15..0]輸入端連接到鎖存器en_dff的輸出端q[15..0],這樣鎖存器鎖存的值就可以與加法器所得到的值相加,得到兩對乘法計算后值得和,以此類推,可以得到不斷累加的值。而CIN端口接地,這樣可以確保CIN端口不影響加法器的計算。加法器計算A[15..0](dataa*datab)和鎖存器鎖存的值B[15..0]的和從輸出端S[15..0]輸出,輸入鎖存器en_dff的輸入端d[15..0],將數(shù)值鎖存起來,同時輸出端S[15..0]接到輸出端YOUT[15..0],從而從仿真中可以看到每一階段累加的結(jié)果。而計數(shù)器cnt16的作用是區(qū)分四組乘加所得數(shù)與四組乘加所得數(shù)。EN接高電平,rst接低電平,保證計數(shù)器可用,clk接到START,每當(dāng)有一個上升沿脈沖送入cnt16時,若計數(shù)不到5,則進(jìn)行計數(shù)+1,若計數(shù)達(dá)到5,COUT輸出進(jìn)位信號到鎖存器en_dff的reset端口,將鎖存器復(fù)位清零,重新進(jìn)行計數(shù)。

      (二)單元電路設(shè)計

      總共有四大模塊,分別為乘法器lpm_mult0、16位加法器ADDER16B、計數(shù)器cnt16以及鎖存器en_dff。

      1.乘法器lpm_mult0:當(dāng)clock出現(xiàn)上升沿時,對輸入端輸入的兩個數(shù)dataa、datab進(jìn)行乘法運算。程序:

      --megafunction wizard: %LPM_MULT% 4--GENERATION: STANDARD--VERSION: WM1.0--MODULE: lpm_mult--==============--File Name: lpm_mult0.vhd--Megafunction Name(s):------Simulation Library Files(s):--lpm--==============--************************************************************--THIS IS A WIZARD-GENERATED FILE.DO NOT EDIT THIS FILE!----7.2 Build 151 09/26/2007 SJ Full Version--************************************************************--Copyright(C)1991-2007 Altera Corporation--Your use of Altera Corporation's design tools, logic functions--and other software and tools, and its AMPP partner logic--functions, and any output files from any of the foregoing--(including device programming or simulation files), and any--associated documentation or information are expressly subject--to the terms and conditions of the Altera Program License--Subscription Agreement, Altera MegaCore Function License--Agreement, or other applicable license agreement, including,--without limitation, that your use is for the sole purpose of--programming logic devices manufactured by Altera and sold by--Altera or its authorized distributors.Please refer to the--applicable agreement for further details.LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY lpm_mult0 IS PORT();END lpm_mult0;ARCHITECTURE SYN OF lpm_mult0 IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR(15 DOWNTO 0);clock dataa datab result

      : IN STD_LOGIC;

      : IN STD_LOGIC_VECTOR(7 DOWNTO 0);: IN STD_LOGIC_VECTOR(7 DOWNTO 0);: OUT STD_LOGIC_VECTOR(15 DOWNTO 0)lpm_mult 5 COMPONENT lpm_mult GENERIC();PORT();END COMPONENT;BEGIN result <= sub_wire0(15 DOWNTO 0);lpm_mult_component : lpm_mult GENERIC MAP()PORT MAP();END SYN;--==============--CNX file retrieval info--==============--Retrieval info: PRIVATE: AutoSizeResult NUMERIC “1”--Retrieval info: PRIVATE: B_isConstant NUMERIC “0”--Retrieval info: PRIVATE: ConstantB NUMERIC “0”--Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING “Cyclone II”--Retrieval info: PRIVATE: LPM_PIPELINE NUMERIC “1” dataa => dataa, datab => datab, clock => clock, result => sub_wire0 lpm_hint => “DEDICATED_MULTIPLIER_CIRCUITRY=YES,MAXIMIZE_SPEED=5”, lpm_pipeline => 1, lpm_representation => “UNSIGNED”, lpm_type => “LPM_MULT”, lpm_widtha => 8, lpm_widthb => 8, lpm_widthp => 16

      dataa datab clock result

      : IN STD_LOGIC_VECTOR(7 DOWNTO 0);: IN STD_LOGIC_VECTOR(7 DOWNTO 0);: IN STD_LOGIC;

      : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)lpm_hint

      : STRING;

      : NATURAL;

      : STRING;lpm_pipeline lpm_type lpm_widtha lpm_widthb lpm_widthp lpm_representation

      : STRING;

      : NATURAL;: NATURAL;: NATURAL 6--Retrieval info: PRIVATE: Latency NUMERIC “1”--Retrieval info: PRIVATE: OptionalSum NUMERIC “0”--Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING “1”--Retrieval info: PRIVATE: SignedMult NUMERIC “0”--Retrieval info: PRIVATE: USE_MULT NUMERIC “1”--Retrieval info: PRIVATE: ValidConstant NUMERIC “0”--Retrieval info: PRIVATE: WidthA NUMERIC “8”--Retrieval info: PRIVATE: WidthB NUMERIC “8”--Retrieval info: PRIVATE: WidthP NUMERIC “16”--Retrieval info: PRIVATE: WidthS NUMERIC “1”--Retrieval info: PRIVATE: aclr NUMERIC “0”--Retrieval info: PRIVATE: clken NUMERIC “0”--Retrieval info: PRIVATE: optimize NUMERIC “0”--Retrieval

      info:

      CONSTANT:

      LPM_HINT

      STRING “DEDICATED_MULTIPLIER_CIRCUITRY=YES,MAXIMIZE_SPEED=5”--Retrieval info: CONSTANT: LPM_PIPELINE NUMERIC “1”--Retrieval info: CONSTANT: LPM_REPRESENTATION STRING “UNSIGNED”--Retrieval info: CONSTANT: LPM_TYPE STRING “LPM_MULT”--Retrieval info: CONSTANT: LPM_WIDTHA NUMERIC “8”--Retrieval info: CONSTANT: LPM_WIDTHB NUMERIC “8”--Retrieval info: CONSTANT: LPM_WIDTHP NUMERIC “16”--Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock--Retrieval info: USED_PORT: dataa 0 0 8 0 INPUT NODEFVAL dataa[7..0]--Retrieval info: USED_PORT: datab 0 0 8 0 INPUT NODEFVAL datab[7..0]--Retrieval info: USED_PORT: result 0 0 16 0 OUTPUT NODEFVAL result[15..0]--Retrieval info: CONNECT: @dataa 0 0 8 0 dataa 0 0 8 0--Retrieval info: CONNECT: result 0 0 16 0 @result 0 0 16 0--Retrieval info: CONNECT: @datab 0 0 8 0 datab 0 0 8 0--Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0--Retrieval info: LIBRARY: lpm lpm.lpm_components.all--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0.vhd TRUE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0.inc FALSE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0.cmp TRUE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0.bsf TRUE FALSE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0_inst.vhd FALSE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0_waveforms.html TRUE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0_wave*.jpg FALSE--Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult0_syn.v TRUE--Retrieval info: LIB_FILE: lpm

      2.16位加法器ADDER16B:將鎖存器鎖存的上一階段的值與進(jìn)行完乘法計算得到的值dataa*datab加起來,并輸出結(jié)果。程序:

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER16B IS PORT(CIN:IN STD_LOGIC;A,B :IN STD_LOGIC_VECTOR(15 DOWNTO 0);S :OUT STD_LOGIC_VECTOR(15 DOWNTO 0);COUT:OUT STD_LOGIC);END ADDER16B;ARCHITECTURE behav OF ADDER16B IS SIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(16 DOWNTO 0);BEGIN AA <= '0' & A;BB <= '0' & B;SINT <= AA+BB+CIN;S <= SINT(15 DOWNTO 0);COUT <= SINT(4);END behav;

      3.計數(shù)器cnt16:區(qū)分每兩組乘加所得數(shù)。clk接到START,每當(dāng)有一個上升沿脈沖送入cnt16時,若計數(shù)不到5,則進(jìn)行計數(shù)+1,若計數(shù)達(dá)到5,COUT輸出進(jìn)位信號到鎖存器en_dff的reset端口,將鎖存器復(fù)位清零,重新進(jìn)行計數(shù)。程序:

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt16 IS PORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END cnt16;ARCHITECTURE behav OF cnt16 IS BEGIN PROCESS(CLK,RST,EN)vARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RST='1' THEN CQI:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1'THEN IF EN='1' THEN IF CQI < 5 THEN CQI:=CQI+1;ELSE CQI:=(OTHERS=>'0');END IF;END IF;END IF;IF CQI=5 THEN COUT<='1';ELSE COUT<='0';END IF;CQ<=CQI;8 END PROCESS;END behav;4.鎖存器en_dff:鎖存上一階段計算得到的值,從而使加法器實現(xiàn)累加功能。程序:

      library ieee;use ieee.std_logic_1164.all;entity en_dff is port(d: in std_logic_VECTOR(15 DOWNTO 0);reset,EN,clk:in std_logic;q: buffer std_logic_VECTOR(15 DOWNTO 0));end en_dff;architecture behavior of en_dff is begin process(reset,clk)begin if reset='1' then q<=“***0”;elsif clk'event and clk='1'then if EN='1'then q<=d;else q<=q;end if;end if;end process;end behavior;

      (三)仿真結(jié)果

      (1)乘法器

      給clock一個時鐘信號,驗證得當(dāng)clock處于上升沿時result=dataa*datab

      (2)16位加法器ADDER16B 將CIN接低電平,隨意設(shè)置A、B的值,S為A、B的和。

      (3)計數(shù)器cnt16 給CLK一個時鐘信號。首先將RST置低電平,EN置高電平,驗證計數(shù)器的計數(shù)功能。再分別將RST置高電平、EN置低電平,驗證計數(shù)器的復(fù)位清零以及使能端控制功能。

      (4)鎖存器en_dff 給clk一個時鐘信號。當(dāng)reset=1時,鎖存器清零,當(dāng)reset=0時有上升沿且使能端EN=1時,d鎖存進(jìn)鎖存器中;當(dāng)有上升沿但是使能端EN=0時,d值不鎖存進(jìn)鎖存器中,鎖存器的值不改變。

      (四)軟件設(shè)計

      1.軟件設(shè)計平臺:QuartusII 7.2 2.實現(xiàn)方法:通過QuartusII 7.2進(jìn)行VHDL語言編程、方陣、引腳配置,然后燒入 GW48實驗平臺,選擇模式NO.1,進(jìn)行硬件驗證。

      3.程序的流程方框圖:

      4.實現(xiàn)的功能:位寬16位;能對8個16位數(shù)據(jù)進(jìn)行乘法和加法運算(yout=a0*b0+a1*b1+a2*b2+a3*b3),并行、串行或流水線方式。

      (五)系統(tǒng)測試

      1.系統(tǒng)的性能指標(biāo)(1)總圖(2)乘法器lpm_mult0

      (3)8位加法器ADDER8B

      (4)計數(shù)器cnt16(5)鎖存器en_dff

      2.功能仿真

      3.引腳綁定

      確定波形仿真成功后,再配置管腳,將程序燒錄進(jìn)EP2C5T144C8中,進(jìn)行測試。選擇模式1,管腳配置圖如下(START設(shè)置為鍵8,使得人為可控,更方便調(diào)試)

      (六)結(jié)論

      根據(jù)硬件驗證:鍵1和鍵2輸入一個十六位數(shù),鍵3和鍵4輸入另一個十六位數(shù),數(shù)碼管1、2顯示第一個數(shù),3、4顯示第二個數(shù),鍵8是運算鍵,每點擊一次運算一次,為一組運算,運算結(jié)果顯示在數(shù)碼管5、6、7、8,將顯示這兩個數(shù)的積,再次輸入兩個十六位數(shù),數(shù)碼管5、6、7、8將顯示這兩個數(shù)的積與前一組數(shù)積的和,依次輸入四組十六位數(shù),完成一次十六位乘加的運算,且結(jié)果顯示在數(shù)碼管5、6、7、8。能夠?qū)崿F(xiàn)對8個16位數(shù)據(jù)進(jìn)行乘法和加法運算(yout=a0*b0+a1*b1+a2*b2+a3*b3)

      三:參考文獻(xiàn)

      潘松,黃繼業(yè).EDA技術(shù)與VHDL(第3版)——清華大學(xué)出版社

      潘松,黃繼業(yè).EDA技術(shù)實用教程—VHDL版(第4班)——科學(xué)出版社 四:附錄

      1.實驗電路結(jié)構(gòu)圖

      2.GW48系統(tǒng)引腳對照表

      五.心得體會

      本次的課程設(shè)計選題時間較短,由于不怎么會寫程序,所以乘法器使用Quartus II生成,而其他模塊是在網(wǎng)上找的資料,自己輸入編譯反復(fù)修改而成??傮w來說過程比較順利,但不足之處是不能完全實現(xiàn)設(shè)計要求。

      第五篇:EDA實驗二總結(jié)報告

      實驗二

      數(shù)字秒表設(shè)計

      一、實驗?zāi)康?/p>

      1、理解計時器的原理與Verilog/VHDL 的編程方法;

      2、掌握多模塊設(shè)計及層次設(shè)計的方法。

      二、實驗原理

      秒計時器是由計數(shù)器和譯碼器、顯示器組成,其核心是計數(shù)器與譯碼器。60 秒計時器可由二個計數(shù)器分別完成:個位為十進(jìn)制計數(shù)器,十位為 6 進(jìn) 制計數(shù)。個位計數(shù)器的計數(shù)信號由實驗開發(fā)板上主頻20MHZ分頻產(chǎn)生的1Hz 時鐘信號提供, 十位計數(shù)器的計數(shù)信號由個位的進(jìn)位信號提供。然后由譯碼器 對計數(shù)結(jié)果進(jìn)行譯碼,送LED 數(shù)碼管進(jìn)行顯示。Clr為清零,se t為開始。

      三、實驗框圖

      四、實驗任務(wù)

      1、采用層次設(shè)計的方法,設(shè)計一個包括頂層及底層模塊的60 秒計時器,底 層模塊用Verilog/VHDL 設(shè)計,頂層用原理圖設(shè)計。

      2、秒計時器應(yīng)當(dāng)具有系統(tǒng)復(fù)位功能;

      3、每十秒發(fā)出提示信號及計滿60 秒時發(fā)出報警信號。(選做)

      五、實驗步驟與要求

      1、分模塊設(shè)計:首先分別設(shè)計10 進(jìn)制、6 進(jìn)制計數(shù)器、譯碼器模塊;

      2、頂層原理圖如圖7-1 所示;

      3、編譯完成后進(jìn)行波形仿真;

      4、進(jìn)行引腳鎖定,并下載至開發(fā)系統(tǒng)驗證。

      六、分模塊設(shè)計 1.十進(jìn)制計數(shù)器(1)程序代碼:

      module CNT10(CLK,RST,EN,COUT,DOUT);

      input CLK,EN,RST;

      output [3:0]DOUT;

      output COUT;

      reg[3:0]Q1;

      reg COUT;

      assign DOUT=Q1;

      always@(posedge CLK or negedge RST)

      begin

      if(!RST)Q1<=0;

      else if(EN)begin

      if(Q1<9)Q1<=Q1+1;

      else Q1<=4'b0000;end

      end

      always@(Q1)

      if(Q1==4'h9)COUT=1'b1;

      else COUT=1'b0;endmodule

      (2)仿真波形

      (3)模塊符號

      2.六進(jìn)制計數(shù)器(1)程序代碼:

      module CNT6(CLK,RST,EN,COUT,DOUT);

      input CLK,EN,RST;

      output [3:0]DOUT;

      output COUT;

      reg[3:0]Q2;

      reg COUT;

      assign DOUT=Q2;

      always@(posedge CLK or negedge RST)

      begin

      if(!RST)Q2<=0;

      else if(EN)begin

      if(Q2<5)Q2<=Q2+1;

      else Q2<=3'b000;end

      end

      always@(Q2)

      if(Q2==3'h5)COUT=1'b1;

      else COUT=1'b0;endmodule

      (2)仿真波形

      (3)模塊符號

      3.分頻器

      (1)程序代碼:

      module FPQ(clk0,clk1);

      input clk0;

      output clk1;

      reg[26:0] Q1;

      reg clk1;always@(posedge clk0)

      if(Q1<10)Q1<=Q1+1;

      else

      begin Q1<=0;

      clk1<=~clk1;

      end endmodule(2)模塊符號

      七.頂層原理圖:

      八.仿真波形

      九.結(jié)果分析

      當(dāng)輸入端CLK,EN,RST都不為0時,首先是十進(jìn)制計數(shù)器開始進(jìn)行計時,直到DOUT1輸出端大于9時產(chǎn)生進(jìn)位,并且自身變?yōu)?,同時使六進(jìn)制計數(shù)器也開始計時,六進(jìn)制輸出端DOUT2大于5時產(chǎn)生進(jìn)位,使COUT輸出為1.

      下載EDA可編程邏輯器件實驗心得體會完整版word格式文檔
      下載EDA可編程邏輯器件實驗心得體會完整版.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        EDA實驗總結(jié)(五篇材料)

        EDA 實驗總結(jié) 系別:物理系 專業(yè):電子信息科學(xué)與技術(shù) 姓名:馬亞偉 學(xué)號:2010171135 在本學(xué)期短短6周的EDA實驗學(xué)習(xí)中,我初步對這一新的領(lǐng)域有了一個較為系統(tǒng)的理解,也為我的專業(yè)學(xué)......

        EDA技術(shù)實驗教案

        一、課程名稱: EDA技術(shù)實驗 二、教材名稱: 《EDA技術(shù)使用教程》,潘松等編著。 三、本課程教學(xué)目的、要求: 介紹EDA的基本知識、常用的EDA工具的使用方法和目標(biāo)器件的結(jié)構(gòu)原理、......

        EDA技術(shù)基礎(chǔ)實驗教案

        實驗一 2選1多路選擇器VHDL設(shè)計 一、實驗?zāi)康模?熟悉利用MAX+plusⅡ的VHDL文本設(shè)計流程全過程,學(xué)習(xí)簡單組合邏輯電路的設(shè)計、多層次電路的設(shè)計、仿真和硬件測試。 二、實驗內(nèi)容......

        EDA分頻器實驗教案(合集五篇)

        實驗三:整數(shù)分頻器的設(shè)計 一 實驗?zāi)康?了解利用類屬設(shè)計可配置的重用設(shè)計技術(shù)。 二 實驗原理 利用類屬n 可以改變分頻器的分頻系數(shù),輸出q的頻率是輸入信號clk頻率的1/n。 通過......

        eda課程設(shè)計心得體會

        eda課程設(shè)計心得體會 寫心得體會是困擾很多人的問題,心中有很多想法,想說卻不知道怎么寫下來。下面本欄目搜集了eda課程設(shè)計心得體會,歡迎查看,希望幫助到大家。 eda課程設(shè)計心......

        EDA心得體會(大全五篇)

        EDA學(xué)習(xí)心得體會 大三時候開始了專業(yè)課的學(xué)習(xí),其中EDA就是要學(xué)的一門專業(yè)課,課程剛開始的時候,對EDA技術(shù)很陌生,也感到很茫然,也非常沒有信心,當(dāng)接觸到可編程器件的時候,看到大家同......

        《大規(guī)模可編程邏輯器件設(shè)計》課程的實驗教學(xué)改革探索(推薦閱讀)

        摘 要: 課程教學(xué)包括課堂教學(xué)和實驗教學(xué),其中實驗教學(xué)內(nèi)容的設(shè)計是重要的教學(xué)環(huán)節(jié),只有精心設(shè)計和組織實驗教學(xué)內(nèi)容,針對實驗教學(xué)和實踐環(huán)節(jié)對課程教學(xué)的新要求和新特點,逐步修訂......

        《EDA技術(shù)基礎(chǔ)》實驗總結(jié)報告及要求

        電工電子中心2009年5月繪制 湖北師范學(xué)院電工電子實驗教學(xué)省級示范中心電子版實驗報告 什么什么設(shè)計(研究) 紅色部分提交時請刪除!?。?題目:“什么內(nèi)容”的設(shè)計或“什么內(nèi)容”的研......