【正文】
真波形如圖 5所示: 圖 5 三角波仿真圖 其生成元器件如圖 6所示: 12 圖 6 三角波元器件生成圖 該模塊產生以 64個時鐘為一個周期的正弦波。 use 。 entity sin is port(clk,clr:in std_logic。 end sin。 begin if clr=39。 then d=0。event and clk=39。 then if tmp=63 then tmp:=0。 end if。 when 01=d=254。 when 03=d=249。 when 05=d=239。 when 07=d=225。 when 09=d=207。 when 11=d=186。 when 13=d=162。 when 15=d=137。 when 17=d=112。 when 19=d=87。 when 21=d=64。 when 23=d=43。 when 25=d=26。 when 27=d=13。 when 29=d=4。 when 31=d=0。 when 33=d=1。 when 35=d=8。 when 37=d=19。 when 39=d=34。 when 41=d=53。 when 43=d=75。 when 45=d=99。 when 47=d=124。 when 49=d=150。 when 51=d=174。 when 53=d=197。 when 55=d=217。 when 57=d=233。 when 59=d=245。 when 61=d=252。 when 63=d=255。 end case。 end process。 其仿真波形如圖 7所示: 圖 7 正弦波仿真圖 其生成元器件如圖 8所示: 圖 8 正弦波元器件生成圖 改變該模塊遞增的常數,可以改變 鋸齒 的個數。 use 。 entity ladder is port(clk,reset:in std_logic。 end ladder。 begin if reset=39。 then tmp:=00000000。event and clk=39。 then if tmp=11111111 then tmp:=00000000。 鋸齒常數為 16,可修改 end if。 q=tmp。 end ladder_arc。其 VHDL代碼如下: library ieee。 entity select4_1 is port(sel:in std_logic_vector(1 downto 0)。 q:out std_logic_vector(7 downto 0))。 architecture one of select4_1 is begin process(sel) begin case sel is when 00=q=d0。 when 10=q=d2。 end case。 end one。 use 。 entity li is port(d_mode:in std_logic_vector(3 downto 0)。 clk:in std_logic。 end li。 clk:in std_logic。 end ponent fenpin。 q:out integer range 0 to 255)。 ponent delta is port(clk,reset:in std_logic。 end ponent delta。 d:out integer range 0 to 255)。 ponent ladder is port(clk,reset:in std_logic。 end ponent ladder。 d0,d1,d2,d3:in std_logic_vector(7 downto 0)。 end ponent select4_1。 signal delta :std_logic。 17 signal ladder :std_logic。 signal d1 :std_logic_vector(7 downto 0)。 signal d3 :std_logic_vector(7 downto 0)。 wen2: square port map(clr=resel,clk= square, q= d0)。 wen4: sin port map(clr=resel,clk= sin, q= d2)。 wen6: select4_1 port map(sel = sel, d0= d0, d1= d1, d2= d2,d3=d3, q=q)。 RTL: 新建一工程,加載上述模塊,利用 頂層模塊 法生成整體多波形信號發(fā)生器。 19 5 小結及體會 通過這次 課程設計 ,我 全面熟悉、掌握 VHDL語言 的 基本知識, 掌握利用 VHDL語言對 信號發(fā)生器的編程 和時序邏輯電路編程,把編程和實際結合起來, 熟悉編制和調試程序的技巧,掌握分析結果的若干有效方法,進一步提高動手能力,培養(yǎng)使用設計綜合電路的能力,養(yǎng)成提供文檔資料的習慣和規(guī)范編程 的思想。 在設計的過程中,也遇到了很多問題,在同學和指導老師的幫助下,都一一得到了解決。當然此次設計也體現出我平時學習中有許多不足和欠缺之處,此后需通過學習來查