【正文】
re behave of delta is begin process(clk,rst) variable tmp:std_logic_vector(7 downto 0)。 variable in1:std_logic。 begin if rst=39。039。 then tmp:=00000000。 elsif clk39。event and clk=39。139。 then if in1=39。039。 then if tmp=11111110 then tmp:=11111111。 in1:=39。139。 else tmp:=tmp+1。 end if。 else if tmp=00000001 then tmp:=00000000。 in1:=39。039。 else tmp:=tmp1。 end if。 end if。 end if。 q=tmp。 end process。 end behave。 階梯模塊源程序如下: 17 library ieee。 use 。 use 。 entity ladder is port(clk,rst:in std_logic。 q:out std_logic_vector(7 downto 0))。 end ladder。 architecture behave of ladder is begin process(clk,rst) variable tmp:std_logic_vector(7 downto 0)。 variable data:std_logic。 begin if rst=39。039。then tmp:=00000000。 elsif clk39。event and clk=39。139。 then if data=39。039。 then if tmp=11111111 then tmp:=00000000。 data:=39。139。 else tmp:=tmp+16。 data:=39。139。 end if。 else data:=39。039。 end if。 end if。 q=tmp。 18 end process。 end behave。 正弦波模塊源程序如下: library ieee。 use 。 use 。 entity sin is port(clk,clr:in std_logic。 d:out integer range 0 to 255)。 end sin。 architecture behave of sin is begin process(clk,clr) variable tmp:integer range 0 to 63。 begin if clr=39。039。 then d=0。 elsif clk39。event and clk=39。139。 then if tmp=63 then tmp:=0。 else tmp:=tmp+1。 end if。 case tmp is when 00=d=255。when 01=d=254。when 02=d=252。 when 03=d=249。when 04=d=245。when 05=d=239。 when 06=d=233。when 07=d=225。when 08=d=217。 when 09=d=207。when 10=d=197。when 11=d=186。 when 12=d=174。when 13=d=162。when 14=d=150。 19 when 15=d=137。when 16=d=124。when 17=d=112。 when 18=d=99。when 19=d=87。when 20=d=75。 when 21=d=64。when 22=d=53。when 23=d=43。 when 24=d=34。when 25=d=26。when 26=d=19。 when 27=d=13。when 28=d=8。when 29=d=4。 when 30=d=1。when 31=d=0。when 32=d=0。 when 33=d=1。when 34=d=4。when 35=d=8。 when 36=d=13。when 37=d=19。when 38=d=26。 when 39=d=34。when 40=d=43。when 41=d=53。 when 42=d=64。when 43=d=75。when 44=d=87。 when 45=d=99。when 46=d=112。when 47=d=124。 when 48=d=137。when 49=d=150。when 50=d=162。 when 51=d=174。when 52=d=186。when 53=d=197。 when 54=d=207。when 55=d=217。when 56=d=225。 when 57=d=233。when 58=d=239。when 59=d=245。 when 60=d=249。when 61=d=252。when 62=d=254。 when 63=d=255。 end case。 end if。 end process。 end behave。 方波模塊源程序如下: library ieee。 use 。 entity square is port(clk,clr:in std_logic。 q:out integer range 0 to 255)。 end square。 architecture behave of square is 20 signal data:bit。 begin process(clk,clr) variable t:integer 。 begin if clr=39。039。 then data=39。039。 elsif clk39。event and clk=39。139。 then if t63 then t:=t+1。 else t:=0。 data=not(data)。 end if。 end if。 end process。 process(clk,data) begin if clk39。event and clk=39。139。 then if data=39。139。 then q=255。 else q=0。 end if。 end if。 end process。 end behave。 選擇模塊源程序如下: library ieee。 21 use 。 entity choice is port(sel:in std_logic_vector(2 downto 0)。 d0,d1,d2,d3,d4,d5:in std_logic_vector(7 downto 0)。 q:out std_logic_vector(7 downto 0))。 end choice。 architecture behave of choice is begin process(sel) begin case sel is when 000=q=d0。 when 001=q=d1。 when 010=q=d2。 when 011=q=d3。 when 100=q=d4。 when 101=q=d5。 when others=null。 end case。 end process。 end behave