📄 decoder.v
字号:
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_R : begin
ram_rd_sel = `RRS_RN;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_AR : begin
ram_rd_sel = `RRS_DC;
ram_wr_sel = `RWS_RN;
src_sel1 = `ASS_ACC;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_DR : begin
ram_rd_sel = `RRS_D;
ram_wr_sel = `RWS_RN;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_CR : begin
ram_rd_sel = `RRS_DC;
ram_wr_sel = `RWS_RN;
src_sel1 = `ASS_IMM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_OP2;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_RD : begin
ram_rd_sel = `RRS_RN;
ram_wr_sel = `RWS_D;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`ORL_R : begin
ram_rd_sel = `RRS_RN;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ACC;
alu_op = `ALU_OR;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`SUBB_R : begin
ram_rd_sel = `RRS_RN;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ACC;
alu_op = `ALU_SUB;
wr = 1'b1;
psw_set = `PS_AC;
cy_sel = `CY_PSW;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`XCH_R : begin
ram_rd_sel = `RRS_RN;
ram_wr_sel = `RWS_RN;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ACC;
alu_op = `ALU_XCH;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_1;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = 2'bxx;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_Y;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`XRL_R : begin
ram_rd_sel = `RRS_RN;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ACC;
alu_op = `ALU_XOR;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
//op_code [7:1]
`ADD_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_ACC;
src_sel2 = `ASS_RAM;
alu_op = `ALU_ADD;
wr = 1'b1;
psw_set = `PS_AC;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = 2'bxx;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`ADDC_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_ACC;
src_sel2 = `ASS_RAM;
alu_op = `ALU_ADD;
wr = 1'b1;
psw_set = `PS_AC;
cy_sel = `CY_PSW;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = 2'bxx;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`ANL_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_ACC;
src_sel2 = `ASS_RAM;
alu_op = `ALU_AND;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = 2'bxx;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`CJNE_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_DC;
src_sel1 = `ASS_IMM;
src_sel2 = `ASS_RAM;
alu_op = `ALU_SUB;
wr = 1'b0;
psw_set = `PS_CY;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_OP2;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`DEC_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_I;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ZERO;
alu_op = `ALU_SUB;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_1;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`INC_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_I;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ZERO;
alu_op = `ALU_ADD;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_1;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_ID : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_D;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_AI : begin
ram_rd_sel = `RRS_DC;
ram_wr_sel = `RWS_I;
src_sel1 = `ASS_ACC;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_DI : begin
ram_rd_sel = `RRS_D;
ram_wr_sel = `RWS_I;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOV_CI : begin
ram_rd_sel = `RRS_DC;
ram_wr_sel = `RWS_I;
src_sel1 = `ASS_IMM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_OP2;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`MOVX_IA : begin
ram_rd_sel = `RRS_DC;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_XRAM;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_OP2;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_RI;
end
`MOVX_AI :begin
ram_rd_sel = `RRS_DC;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_DC;
src_sel2 = `ASS_DC;
alu_op = `ALU_NOP;
wr = 1'b0;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_OP2;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_RI;
end
`ORL_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ACC;
alu_op = `ALU_OR;
wr = 1'b1;
psw_set = `PS_NOT;
cy_sel = `CY_0;
pc_wr = `PCW_N;
pc_sel = `PIS_DC;
imm_sel = `IDS_DC;
src_sel3 = `AS3_DC;
comp_sel = `CSS_DC;
wr_bit = 1'b0;
wad2 = `WAD_N;
rom_addr_sel = `RAS_PC;
ext_addr_sel = `EAS_DC;
end
`SUBB_I : begin
ram_rd_sel = `RRS_I;
ram_wr_sel = `RWS_ACC;
src_sel1 = `ASS_RAM;
src_sel2 = `ASS_ACC;
alu_op = `ALU_SUB;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -