control.v

来自「这个文件中使用verilog hdl简单的利用基本运算实现了微型的cpu设计开发」· Verilog 代码 · 共 96 行

V
96
字号
`include "defines.v"module control  (                load_ac ,                mem_rd  ,                mem_wr  ,                inc_pc  ,                load_pc ,                load_ir ,                halt    ,                opcode  ,                zero    ,                clk     ,                clk2    ,                fetch   ,                rst_                   );output          load_ac ;output          mem_rd  ;output          mem_wr  ;output          inc_pc  ;output          load_pc ;output          load_ir ;output          halt    ;input   [2:0]   opcode  ;input           zero    ;input           clk     ;input           clk2    ;input           fetch   ;input           rst_    ;reg     [2:0]   phase   ;  always @ ( clk )    if ( !rst_ )      phase <= 0;    else      if ( clk && clk2 && fetch || phase!=0 )        phase <= phase+1;assign load_ir =            phase==2         || phase==3         ;assign halt =            phase==4 && opcode==`HLT         ;assign inc_pc =            phase==4         || phase==6 && opcode==`SKZ && zero         || phase==7 && opcode==`SKZ && zero         || phase==7 && opcode==`JMP         ;assign mem_rd =            phase==1         || phase==2         || phase==3         || phase==5 && opcode==`ADD         || phase==5 && opcode==`AND         || phase==5 && opcode==`XOR         || phase==5 && opcode==`LDA         || phase==6 && opcode==`ADD         || phase==6 && opcode==`AND         || phase==6 && opcode==`XOR         || phase==6 && opcode==`LDA         || phase==7 && opcode==`ADD         || phase==7 && opcode==`AND         || phase==7 && opcode==`XOR         || phase==7 && opcode==`LDA         ;assign load_ac =            phase==6 && opcode==`ADD         || phase==6 && opcode==`AND         || phase==6 && opcode==`XOR         || phase==6 && opcode==`LDA         || phase==7 && opcode==`ADD         || phase==7 && opcode==`AND         || phase==7 && opcode==`XOR         || phase==7 && opcode==`LDA         ;assign load_pc =            phase==6 && opcode==`JMP         || phase==7 && opcode==`JMP         ;assign mem_wr =            phase==7 && opcode==`STO         ;endmodule

⌨️ 快捷键说明

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