【正文】
在本次試驗中我回顧了在《數字電路》課程中學過的關于數字電路的設計的部分,了解了VHDL和Verilog語言的區(qū)別與聯系,以及它們的優(yōu)缺點,以及它們主要針對的設計對象。由此可知相對誤差為177。右鍵單擊左邊圖標選擇Program,在隨后的對話框中單擊OK,文件將自動下載到開發(fā)板上,成功后,接入函數發(fā)生器進行測試。NET SEL2 LOC = E7。NET SEG5 LOC = B12。NET SEG1 LOC = A13。NET SE1 LOC = L6。 管腳分配:由系統(tǒng)的頂層文件可以看到該系統(tǒng)的輸入端共有5個,輸出端有11個,:NET CLKIN LOC = T8。END。 CLK=39。BEGIN uut: CTRLS PORT MAP( CLK = CLK, SEL = SEL)。 END COMPONENT。USE 。end Behavioral。139。 WHEN 1001=SEG=0010000。 WHEN 0101=SEG=0010010。 WHEN 0001=SEG=1111001。 WHEN 101=DATA=DATAIN(23 DOWNTO 20)。 WHEN 001=DATA=DATAIN(7 DOWNTO 4)。 SEG : OUT STD_LOGIC_VECTOR (6 DOWNTO 0))。use 。該段代碼的編寫的主要原理是首先判斷小數點的位置,然后對小數點前的高位數從高到低依次進行判斷,如果高位為零則將數據取反,在后續(xù)譯碼中將不再顯示,從而實現高位無意義零的自動消隱。 END IF。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 12)=1111。 QOU(15 DOWNTO 0)=DIN(15 DOWNTO 0)。 QOU(19 DOWNTO 0)=DIN(19 DOWNTO 0)。139。 QOU(11 DOWNTO 0)=DIN(11 DOWNTO 0)。 END IF。 END IF。 AND DP2=39。 END IF。 END IF。 AND DP2=39。 QOU : out STD_LOGIC_VECTOR (23 downto 0))。use 。 將CNT信號賦給SEL輸出end Behavioral。 END IF。EVENT AND CLK=39。 SEL : out STD_LOGIC_VECTOR (2 downto 0))。use 。 不符合上述三檔時,小數點全部消隱 END IF。 AND SEL=001 THEN DP=39。 AND SE10=39。 AND SEL=010 THEN DP=39。 AND SE10=39。 AND SEL=011 THEN DP=39。 AND SE10=39。 DP : out STD_LOGIC)。entity POINTCON is Port ( SE1 : in STD_LOGIC。首先我們編寫小數點控制的源文件代碼:library IEEE。end Behavioral。S6(15 DOWNTO 12)=S2。 S6 : out STD_LOGIC_VECTOR (23 downto 0))。 S2 : in STD_LOGIC_VECTOR (3 downto 0)。use 。 END PROCESS。EVENT AND CLK=39。 DIN : in STD_LOGIC_VECTOR。use 。 END IF。architecture Behavioral of LATCH4 isbegin PROCESS(CLK,DIN) IS BEGIN IF CLK39。entity LATCH4 is Port ( CLK : in STD_LOGIC。四位鎖存器的原代碼如下:library IEEE。END。 CLK=39。BEGIN uut: CNT10 PORT MAP( CLK = CLK, CLR = CLR, ENA = ENA, CQ = CQ, CO = CO)。 SIGNAL ENA : std_logic := 39。 SIGNAL CLK : std_logic := 39。 ENA : IN std_logic。USE 。 當且僅當使能有效且計數為9時產生進位信號,進位信號1有效,同步并聯時連高位的使能端end Behavioral。139。 END PROCESS。139。 THEN 對時鐘進行計數 IF ENA=39。 THEN CQI=0000。end CNT10。 CLR : in STD_LOGIC。use 。同時我們也可以看出來該模塊對分頻器的時鐘輸出的穩(wěn)定性依賴十分嚴重,一旦分頻器輸出時鐘有毛刺,該控制信號將會完全的無效,這也是為什么我知道上面的分頻器設計不是最優(yōu)的方案,卻還是采用了上述方法的原因。 WAIT FOR 100 NS。039。 SIGNAL GAT : std_logic。 CLR : OUT std_logic)。USE 。 將G1賦給gat輸出端,它是計數器的使能信號同時也是鎖存器的鎖存信號end Behavioral。039。039。 END PROCESS。EVENT AND FREF=39。end CONTROLS。use 。 門控信號:在此模塊中有一個輸入端和兩個輸出端,輸入端為上面的閘門選擇器輸出的頻率,兩個輸出端分別為計數器是能控制信號(鎖存器控制信號),和計數器清零信號。 WAIT FOR 100 NS。 F1HZ=39。039。 SIGNAL DP2 : std_logic。 SIGNAL F100HZ : std_logic := 39。 SIGNAL F1HZ : std_logic := 39。 SIGNAL SE10 : std_logic := 39。 DP3 : OUT std_logic)。 F100HZ : IN std_logic。 SE10 : IN std_logic。USE 。 END PROCESS。139。 THEN FREF=F100HZ。 AND SE10=39。139。139。 AND SE100=39。 IF SE1=39。139。 THEN FREF=F1HZ。 AND SE10=39。 DP3 : out STD_LOGIC)。 F100HZ :IN STD_LOGIC。 SE10 : in STD_LOGIC。use 。END。 clk=39。BEGIN uut: fenpinqi PORT MAP(clk = clk, clkout1 = clkout1, clkout10 = clkout10, clkout100 = clkout100, clkout1K = clkout1K)。 SIGNAL clkout1 : std_logic。 clkout1K : OUT std_logic)。ARCHITECTURE behavior OF tbb_vhd IS COMPONENT fenpinqi PORT(clk : IN std_logic。USE 。clkout100=c3。 end if。 then 方法同上 if t1K24000000 then t1K=t1K+1。end process。 elsif t100=240000 then