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

📄 encode.v.bak

📁 此代码可用modelsim进行仿真
💻 BAK
📖 第 1 页 / 共 2 页
字号:
                w_reg<=1'b0;                r_reg<=1'b0;                ir_jump<=1'b0;            end            12'b1101_????_????://IORLW            begin                choice<=5'b01111;                sel_imm<=1'b0;                w_ena<=1'b1;                sel_wd<=1'b0;                load_pc<=1'b0;                load_pc_call<=1'b0;                load_pc_goto<=1'b0;                load_pc_retlw<=1'b0;                w_reg<=1'b0;                r_reg<=1'b0;                ir_jump<=1'b0;            end            12'b1111_????_????://XORLW            begin                choice<=5'b10000;                sel_imm<=1'b0;                w_ena<=1'b1;                sel_wd<=1'b0;                load_pc<=1'b0;                load_pc_call<=1'b0;                load_pc_goto<=1'b0;                load_pc_retlw<=1'b0;                w_reg<=1'b0;                r_reg<=1'b0;                ir_jump<=1'b0;            end            12'b0010_01??_????://COMF            begin                if(encode[5]==0)                begin                    choice<=5'b10001;                    sel_imm<=1'b1;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end                else if(encode[5]==1)                begin                    choice<=5'b10001;                    sel_imm<=1'b1;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end            end             12'b0100_????_????://BCF            begin                choice<=5'b10010;                sel_imm<=1'b0;                w_ena<=1'b0;                sel_wd<=1'b0;                load_pc<=1'b0;                load_pc_call<=1'b0;                load_pc_goto<=1'b0;                load_pc_retlw<=1'b0;                w_reg<=1'b1;                r_reg<=1'b1;                ir_jump<=1'b0;            end            12'b0101_????_????://BSF            begin                choice<=5'b10011;                sel_imm<=1'b0;                w_ena<=1'b0;                sel_wd<=1'b0;                load_pc<=1'b0;                load_pc_call<=1'b0;                load_pc_goto<=1'b0;                load_pc_retlw<=1'b0;                w_reg<=1'b1;                r_reg<=1'b1;                ir_jump<=1'b0;            end            12'b0000_11??_????://DECF            begin                if(encode[5]==0)                begin                    choice<=5'b10100;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end                else if(encode[5]==1)                begin                    choice<=5'b10100;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end            end            12'b0010_10??_????://INCF            begin                if(encode[5]==0)                begin                    choice<=5'b10101;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end                else if(encode[5]==1)                begin                    choice<=5'b10101;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end            end            12'b0010_11??_????://DECFSZ            begin                            if(encode[5]==0&&alu_z==0)                begin                   choice<=5'b10110;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                 end                else if(encode[5]==0&&alu_z==1)                begin                    choice<=5'b10110;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b1;                end                else if(encode[5]==1&&alu_z==0)                begin                    choice<=5'b10110;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end                else if(encode[5]==1&&alu_z==1)                begin                    choice<=5'b10110;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b1;                end            end            12'b0011_11??_????://INCFSZ            begin                            if(encode[5]==0&&alu_z==0)                begin                   choice<=5'b10111;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                 end                else if(encode[5]==0&&alu_z==1)                begin                    choice<=5'b10111;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b1;                end                else if(encode[5]==1&&alu_z==1)                begin                    choice<=5'b10111;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b1;                end                else if(encode[5]==1&&alu_z==0)                begin                    choice<=5'b10111;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end            end            12'b0110_????_????://BTFSC            begin                if(alu_bitz==0)                begin                    choice<=5'b11000;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b1;                end                else if(alu_bitz==1)                begin                    choice<=5'b11000;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end            end            12'b0111_????_????://BTFSS            begin                if(alu_bitz==0)                begin                    choice<=5'b11001;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;                end                else if(alu_bitz==1)                begin                    choice<=5'b11001;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b1;                end            end            12'b1001_????_????://CALL            begin                    choice<=5'b11010;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b1;                    load_pc_call<=1'b1;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;            end            12'b1000_????_????://RETLW            begin                    choice<=5'b11011;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b1;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b1;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;            end            12'b101?_????_????://GOTO            begin                    choice<=5'b11100;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b1;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b1;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;            end            12'b0000_0000_0???://TRIS            begin                    choice<=5'b11101;                    sel_imm<=1'b0;                    w_ena<=1'b1;                    sel_wd<=1'b0;                    load_pc<=1'b0;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b1;                    r_reg<=1'b0;                    ir_jump<=1'b0;            end            default :            begin                    choice<=5'bxxxxx;                    sel_imm<=1'b0;                    w_ena<=1'b0;                    sel_wd<=1'b0;                    load_pc<=1'b1;                    load_pc_call<=1'b0;                    load_pc_goto<=1'b0;                    load_pc_retlw<=1'b0;                    w_reg<=1'b0;                    r_reg<=1'b0;                    ir_jump<=1'b0;            end    endcaseendendtaskendmodule                                                           

⌨️ 快捷键说明

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