|
发表于 2009-12-29 12:17:04
|
显示全部楼层
回复【14楼】mowenhui28
-----------------------------------------------------------------------
module fre_set(clk,add,dec,fre,rst);
input clk,add,dec,rst;
output [12:0] fre;
reg[12:0] fre,fre_p;
reg add_p, dec_p;
//reg [12:0] fre_add,fre_dec;
//reg num1,num2;
//initial fre=40;
always@(posedge clk)//negedge add)
begin
if(rst) begin fre_p<=40;
add_p<=0;
dec_p<=0;
end
else begin fre<=fre_p;
add_p<=add;
dec_p<=dec;
end
end
always@(add or add_p or dec or dec_p or fre_p)
begin
// fre_p=fre;
if ( add_p ==1 && add ==0)
fre_p=fre_p*2;
else fre_p=fre_p;
if ( dec_p ==1 && dec ==0)
fre_p=(fre_p>>1);
else fre_p=fre_p;
end
/*
if(~dec) begin fre_dec=fre_dec/2;num2=1;end
else begin fre_dec=fre_dec; num2=0;end
end
always@(posedge clk)
begin
case({num1,num2})
2'b10:fre=fre_add;
2'b01:fre=fre_dec;
default:fre=fre;
endcase
end
*/
endmodule
我仿真可以,试试这个 |
|