begin
process(en,clk_cor,runmode,fpoint,setmode)--dds输出
--variable regadd: std_logic_vector(3 downto 0);
--variable count: std_logic_vector(7 downto 0);
--variable data32_f : std_logic_vector(31 downto 0);--"11111111111111111111111111111111"
--variable data32_step : std_logic_vector(31 downto 0);
begin
if clk_cor'event and clk_cor=Ƈ'then
regadd<=regadd+1;
if regadd=9 then regadd<=0;end if;
setadd<=setadd+1;
if setadd=300 then setadd<=0;end if;
if en=Ɔ' and runmode=Ƈ' and setmode=Ɔ' then--set mode
case setadd is
when 0=> rest<=Ƈ'ps0<=Ɔ'ps1<=Ɔ'pselect<=Ƈ'setok<=Ɔ'
when 50=> rest<=Ɔ'wr<=Ƈ'
when 51=> add<="000000";-- 1/2 fre
when 52=> wr<=Ɔ'
when 53=> data<="01011000";
when 54=> wr<=Ƈ'
when 55=> add<="000001";-- cosin out
when 56=> wr<=Ɔ'
when 57=> data<="01000000";
when 58=> wr<=Ƈ'
when 59=> setok<=Ƈ'
when others=> null;
end case;
end if;
if en=Ɔ' and runmode=Ɔ' and setmode=Ƈ' then --run mode
case regadd is
when 0=> wr<=Ƈ'add<="001010";data<=data32_f(7 downto 0);----写地址 7..0 0x0a
when 1=> wr<=Ɔ'
when 2=> wr<=Ƈ'add<="001011";data<=data32_f(15 downto 8);
when 3=> wr<=Ɔ'
when 4=> wr<=Ƈ'add<="001100";data<=data32_f(23 downto 16);----写地址 23..16 0x0c
when 5=> wr<=Ɔ'
when 6=> wr<=Ƈ'add<="001101";data<=data32_f(31 downto 24); ----写地址 31..24 0x0d
when 7=> wr<=Ɔ'fud<=Ƈ'
--when 8=>
when 8=> fud<=Ɔ'
count<=count+1; if count=38 then count<=0;end if;
case count is--0~21--"00000000000100000110001001001110"
--when 0=> data32_f<="00101100101000001000010011011000";--129mhz
--when 21=> data32_f<="01000011011101011001111100100010";--195mhz--
when 0=> data32_f<="00101100111001110101111001100000";--129.8mhz
when 1=> data32_f<="00101111000000111001100100001100";--135.9mhzaaaaaaaaaaaaaaa
when 2=> data32_f<="00101111000011000111010000111101";--136mhz
when 3=> data32_f<="00101111000101010100111101101110";--136.1mhz
when 4=> data32_f<="00101111000111100010101010011111";--136.2mhz
when 5=> data32_f<="00101111001001110000010111010000";--136.3mhz
when 6=> data32_f<="00101111111000010000000011010100";--138.4mhz
when 7=> data32_f<="00101111111010011101110000000101";--138.5mhz
when 8=> data32_f<="00101111111100101011011100110110";--138.6mhz
when 9=> data32_f<="00101111111110111001001001100111";--138.7mhz
when 10=> data32_f<="00110000000001000110110110011000";--138.8mhz
when 11=> data32_f<="00110001001101011111011110110010";--142.25mhzbbbbbbbbbbbbbbb
when 12=> data32_f<="00110001011110000110001110100010";--143mhz
when 13=> data32_f<="00110001111111010011101110000001";--144.5mhz
when 14=> data32_f<="00110010001010011000001101110101";--145mhz
when 15=> data32_f<="00110010110001000111111101001111";--146.75mhz
when 16=> data32_f<="00110100001000100101000101011110";--150.7mhz
when 17=> data32_f<="00110100110000011011101011001111";--152.5mhz
when 18=> data32_f<="01000011011101011001111100100010";--195mhz--
when others=> data32_f<=data32_f+"00000000011011101011001111100100";--1.25mhz
--when others=> null; "01000011011101011001111100100010";
end case;
when others=> null;
end case;
end if;
else
null;
end if;
end process;
end ctrl_architecture;

保证可以用,我以前以产品上的部分程序