⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statectrl.v

📁 Verilog实现的CPU程序
💻 V
字号:
  module cpu_sctrl(load_acc,mem_r,mem_w,inc_pc,load_pc,load_ir,halt,opcode,fetch,zero,clk,clk2,reset);   output load_acc,mem_r,mem_w,inc_pc,load_pc,load_ir,halt;   reg load_acc,mem_r,mem_w,inc_pc,load_pc,load_ir,halt;   input[2:0] opcode;   input fetch,zero,clk,clk2,reset;   parameter Hlt=3'b000,Skz=3'b001,Add=3'b010,And=3'b011,Xor=3'b100,Lda=3'b101,Sto=3'b110,Jmp=3'b111;   always @(posedge fetch)         if(reset)//             ctl_state;//   always @(negedge reset)            begin              disable ctl_state;             {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0;            end   always @( posedge reset)            @(posedge fetch) ctl_state;        task ctl_state;              begin                {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0000000;                     @(posedge clk)                   {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0000100;              @(negedge clk)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0000110;              @(posedge clk)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0000110;              @(negedge clk)                  if(opcode==Hlt)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b1000001;                  else                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b1000000;              @(posedge clk)                  if((opcode==Add)||(opcode==And)||(opcode==Xor)||(opcode==Lda))                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b1000100;                  else                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0000000;              @(negedge clk)                  if(opcode==Jmp)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0010000;                  else if((opcode==Skz)&&zero)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b1000000;                      else if((opcode==Add)||(opcode==And)||(opcode==Xor)||(opcode==Lda))                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0100100;                  else                  {inc_pc,load_acc,load_pc,mem_r,load_ir,halt}=7'b0000000;                  @(posedge clk)                  if(opcode==Jmp)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b1010000;                  else if(opcode==Sto)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0001000;                  else if((opcode==Skz)&&zero)                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b1000000;                  else if((opcode==Add)||(opcode==And)||(opcode==Xor)||(opcode==Lda))                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0100100;                  else                  {inc_pc,load_acc,load_pc,mem_w,mem_r,load_ir,halt}=7'b0000000;       end           endtask endmodule

⌨️ 快捷键说明

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