1 testbench 文件 tb_rc.v ,第51行为程序代码文件2 顶层文件 rc.v3 编译文件 compile.v 里面第一行的INPUTFILE 为需要编译的源文件,OUTPUTFILE为编译后的文件因为不会用c语言,所以用verilog写了这个编译代码,modelsim 里运行4 说明文件 myrisc_fa.txt这是我没事干,练手时随便写的一个cpu的代码,上传上来给大家看热闹 指令格式 代码 1 NOP 0000 0000 0000 00002 GOTO XXX 0001 NNNN NNNN NNNN XXX为16进制地址(0 -- 0XFFF) GOTO V0-V2553 JUMP C0 XX 0010 00MN NNNN NNNN MXX(-FF -- +FF)4 JUMP C1 XX 0010 01MN NNNN NNNN MXX(-FF -- +FF)5 JUMP Z0 XX 0010 11MN NNNN NNNN MXX(-FF -- +FF) 全0跳转6 JUMP Z1 XX 0010 10MN NNNN NNNN MXX(-FF -- +FF)7 IRQ XX 0011 0000 XXXX XXXX XX(0 -- FF) 8 INPUTA XXX 0100 NNNN NNNN NNNN XXX为16进制地址(0 -- 0XFFF) 9 INPUTB XXX 0101 NNNN NNNN NNNN XXX为16进制地址(0 -- 0XFFF) 10 OUTPUTA XXX 0110 NNNN NNNN NNNN XXX为16进制地址(0 -- 0XFFF)11 OUTPUTB XXX 0111 NNNN NNNN NNNN XXX为16进制地址(0 -- 0XFFF)12 SETA XX 1000 0000 NNNN NNNN XX(0 -- FF) 比如SETA 23 相当于A=0x23 而不是A=23 13 SETB XX 1000 1000 NNNN NNNN XX(0 -- FF)14 PORTI 1001 0000 0000 000015 PORTO 1001 1000 0000 000016 OUTPC 1010 0000 0000 000017 INPC 1011 0000 0000 000018 ADD 1100 0000 0000 000019 SUB 1100 0001 0000 000020 AND 1100 0010 0000 000021 OR 1100 0011 0000 000022 XOR 1100 0100 0000 000023 NOT 1100 0101 0000 000024 SHR 1100 0110 0000 000025 DIVE2 1100 0111 0000 000026 RR 1100 1000 0000 000027 RRC 1100 1001 0000 000028 SETC 1100 1010 0000 000029 CLEARC 1100 1011 0000 000030 ADC 1100 1100 0000 000031 SBC 1100 1101 0000 000032 LR 1100 1110 0000 000033 LRC 1100 1111 0000 000034 RET 1101 0000 0000 000035 UARTI 1110 0000 0000 000036 UARTO 1110 1000 0000 000037 GETSTATE 1111 0000 0000 0000……