clk_gen.v

来自「8位RISC CPU,包括alu,count,machine等等」· Verilog 代码 · 共 81 行

V
81
字号
module clk_gen(clk,reset,clk1,clk2,clk4,fetch,alu_clk);
input clk,reset;
output clk1,clk2,clk4,fetch,alu_clk;
wire clk,reset;
reg clk2,clk4,fetch,alu_clk;
reg[7:0] state;
parameter S1 =8'b00000001,
          S2 =8'b00000010,
          S3 =8'b00000100,
          S4 =8'b00001000,
          S5 =8'b00010000,
          S6 =8'b00100000,
          S7 =8'b01000000,
          S8 =8'b10000000,
         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
            S6:
               begin
                  clk2<=~clk2;
                  clk4<=~clk4;
                  state<=S7;
               end
            S7:
               begin
                  clk2<=~clk2;
                  state<=S8;
               end
            S8:
               begin
                  clk2<=~clk2;
                  clk4<=~clk4;
                  fetch<=~fetch;
                  state<=S1;
               end
            idle:state<=S1;
            default:state<=idle;
        endcase
    end
endmodule

⌨️ 快捷键说明

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