RISC-V MCU中文社区

【分享】 RISCV指令二进制编码利用matlab生成E203仿真可用文件

发表于 开源蜂鸟E203 2023-05-30 14:07:06
0
1107
0

团队编号:CICC2879

团队名称:八点起床读书

团队成员:黄良煜、苏桢毅

鉴于nuclei studio IDE生成的.verilog难懂,为了方便对单条或者几条指令进行测试,我们队伍编写了matlab代码来实现E203仿真可以识别到的文件。

matlab代码如下:

clear all;

clc;

close all;

format compact;

inst_rom = textread('lw.data','%s');%输入文件

%inst_rom ='01AD80D3';

inst_dec=hex2dec(inst_rom);

inst_bin=dec2bin(inst_dec);

while(length(inst_bin(1,:))<32)

    inst_bin(:,2:(length(inst_bin(1,:))+1))=inst_bin(:,1:length(inst_bin(1,:)));

    inst_bin(:,1)='0';

end

for i=1:length(inst_rom)

    for j=1:4

       for k=1:8

        inst_bin_out(i,(j-1)*8+k)=inst_bin(i,32-8*j+k);

       end

    end

end

inst_out=bin2dec(inst_bin_out);

inst_out=dec2hex(inst_out);

while(length(inst_out)<8)

   inst_out(2:8)=inst_out;

   inst_out(1)='0';

end

fid=fopen('encoder_result.txt','wt');

fprintf(fid,"@00000000\n")

for i=1:length(inst_rom)

    fprintf(fid,"%s %s %s %s\n",inst_out(i,1:2),inst_out(i,3:4),inst_out(i,5:6),inst_out(i,7:8));

end

fclose(fid);

输入的图片格式没有特殊要求,只需要输入32位的16进制数即可:


输出的文件在官方提供的tb文件中这里导入:


喜欢0
用户评论
situxiao

situxiao 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板