clock_gen.v

来自「是verilog做的简化mips32指令系统。 有些小问题」· Verilog 代码 · 共 74 行

V
74
字号
module clock_gen (clock,reset,registersclk,controlerclk,dmemoryclk,ifetchclk,aludecoderclk,aluclk,sigextclk); 
input clock,reset; 
output reg registersclk,controlerclk,dmemoryclk,ifetchclk,aludecoderclk,aluclk,sigextclk; 
reg[6:0] state; 
parameter	S1 = 8'b0000001, 
			S2 = 8'b0000010, 
			S3 = 8'b0000100, 
			S4 = 8'b0001000, 
			S5 = 8'b0010000, 
			S6 = 8'b0100000, 
			S7 = 8'b1000000, 
			idle = 8'b0000000;					
always @(posedge clock) 
	if(reset) 
	begin 
		registersclk=0;
		controlerclk=0;
		dmemoryclk=1;
		ifetchclk=0;
		aludecoderclk=0;
		aluclk=0;
		sigextclk=0;
		state <= idle; 
	end 
	else 
	begin  
		case(state) 
		S1: 
		begin 
			ifetchclk=~ifetchclk;  
			state <= S2; 
		end 
		S2: 
		begin 
			controlerclk=~controlerclk;
			sigextclk=~sigextclk;
			state <= S3; 
		end 
		S3: 
		begin	 
			controlerclk=~controlerclk;
			sigextclk=~sigextclk;
			aludecoderclk=~aludecoderclk;
			registersclk=~registersclk; 
			state <= S4; 
		end 
		S4: 
		begin 
			aludecoderclk=~aludecoderclk;
			aluclk=~aluclk; 
			state <= S5; 
		end 
		S5: 
		begin 
			dmemoryclk=~dmemoryclk; 
			state <= S6; 
		end 
		S6: 
		begin 
			registersclk=~registersclk;
			dmemoryclk=~dmemoryclk;
			aluclk=~aluclk; 
			state <= S7; 
		end 
		S7: 
		begin 
			ifetchclk=~ifetchclk;  
			state <=  S1; 
		end 
		idle:state <= S1;	 
		default:state <= idle;					 
		endcase 
	end 
endmodule 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?