cpu.v

来自「8051的Verilog实现」· Verilog 代码 · 共 2,376 行 · 第 1/5 页

V
2,376
字号
      nr_cycles_a = 4'b0010 ; 
      end
   ANL_A_IR0 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   ANL_A_IR1 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   ANL_A_R0 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R1 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R2 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R3 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R4 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R5 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R6 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   ANL_A_R7 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   
   //-----------------------------------
   // 60h
   //-----------------------------------
   JZ :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   AJMP_3 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   XRL_ADDR_A :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   XRL_ADDR_N :
      begin
      nr_bytes_a = 2'b11 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   XRL_A_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   XRL_A_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   XRL_A_IR0 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   XRL_A_IR1 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   XRL_A_R0 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R1 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R2 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R3 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R4 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R5 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R6 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   XRL_A_R7 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   
   //-----------------------------------
   // 70h
   //-----------------------------------
   JNZ :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   ACALL_3 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0110 ; 
      end
   ORL_C_BIT :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   JMP_A_DPTR :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_A_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_ADDR_N :
      begin
      nr_bytes_a = 2'b11 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_IR0_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_IR1_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_R0_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R1_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R2_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R3_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R4_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R5_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R6_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOV_R7_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   
   //-----------------------------------
   // 80h
   //-----------------------------------
   SJMP :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   AJMP_4 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   ANL_C_BIT :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   MOVC_A_PC :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   DIV_AB :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0101 ; 
      end
   MOV_ADDR_ADDR :
      begin
      nr_bytes_a = 2'b11 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_ADDR_IR0 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_ADDR_IR1 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_ADDR_R0 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R1 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R2 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R3 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R4 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R5 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R6 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_ADDR_R7 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   
   //-----------------------------------
   // 90h
   //-----------------------------------
   MOV_DPTR_N :
      begin
      nr_bytes_a = 2'b11 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   ACALL_4 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0110 ; 
      end
   MOV_BIT_C :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOVC_A_DPTR :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   SUBB_N :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   SUBB_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   SUBB_IR0 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   SUBB_IR1 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   SUBB_R0 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R1 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R2 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R3 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R4 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R5 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R6 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   SUBB_R7 :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   
   //-----------------------------------
   // A0h
   //-----------------------------------
   ORL_C_NBIT :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   AJMP_5 :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0011 ; 
      end
   MOV_C_BIT :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end
   INC_DPTR :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0001 ; 
      end
   MUL_AB :
      begin
      nr_bytes_a = 2'b01 ; 
      nr_cycles_a = 4'b0101 ; 
      end
   MOV_IR0_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0101 ; 
      end
   MOV_IR1_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0101 ; 
      end
   MOV_R0_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R1_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R2_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R3_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R4_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R5_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R6_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   MOV_R7_ADDR :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0100 ; 
      end
   
   //-----------------------------------
   // B0h
   //-----------------------------------
   ANL_C_NBIT :
      begin
      nr_bytes_a = 2'b10 ; 
      nr_cycles_a = 4'b0010 ; 
      end

⌨️ 快捷键说明

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