|
楼主 |
发表于 2009-10-26 17:36:57
|
显示全部楼层
哦。。。。。
我以为。。。。。
好吧。源代码是这样的。
module clk_gen (clk,reset,clk1,clk2,clk4,fetch,alu_clk,state);
input clk,reset;
output clk1,clk2,clk4,fetch,alu_clk,state;
wire clk,reset;
reg clk2,clk4,fetch,alu_clk;
reg [7:0] state;
parameter s1=8'b00000001;
parameter s2=8'b00000010;
parameter s3=8'b00000100;
parameter s4=8'b00001000;
parameter s5=8'b00010000;
parameter s6=8'b00100000;
parameter s7=8'b01000000;
parameter s8=8'b10000000;
parameter idle=8'b00000000;
assign clk1=~clk;
always @ (negedge clk)
if(reset)
begin
clk2<=0;
clk4<=1;
fetch<=0;
alu_clk<=0;
state<=idle;
end
else
begin
case(state)
s1:
begin
clk2<=~clk2;
alu_clk<=~alu_clk;
state<=s2;
end
s2:
begin
clk2<=~clk2;
clk4<=~clk4;
alu_clk<=~alu_clk;
state<=s3;
end
s3:
begin
clk2<=~clk2;
state<=s4;
end
s4:
begin
clk2<=~clk2;
clk4=~clk4;
fetch<=~fetch;
state<=s5;
end
s5:
begin
clk2<=~clk2;
state<=s6;
end
s7:
begin
clk2<=~clk2;
clk4<=~clk4;
state<=s7;
end
s8:
begin
clk2<=~clk2;
clk4<=~clk4;
fetch=~fetch;
state<=s1;
end
idle:state<=s1;
default:state<=idle;
endcase
end
endmodule
源代码就是用一个信号分频成几个信号。 |
|