RISC-V模型
riscv-model的Python项目详细描述
这是risc-v is a的python模型。它旨在成为基于python的自动化测试和验证的资源。 它正在开发中,还不是很有用,但可以用来生成随机汇编代码。
文档:https://riscv-python-model.readthedocs.io/en/latest/
快速启动
首先安装:
pip3 install riscv-model
创建随机汇编程序序列
创建随机汇编程序序列:
riscv-random-asm
您可以调整汇编程序输出:
usage: riscv-random-asm [-h] [-i {add,sub,sll,slt,sltu,xor,srl,sra,or,and,jalr,addi,slti,sltiu,xori,ori,andi,lb,lh,lw,lbu,lhu,slli,srli,srai,sb,sh,sw,beq,bne,blt,bge,bltu,bgeu,lui,auipc,jal}] [--version] [N] Generate sequence of assembler instructions. positional arguments: N Number of assembler instructions optional arguments: -h, --help show this help message and exit -i {add,sub,sll,slt,sltu,xor,srl,sra,or,and,jalr,addi,slti,sltiu,xori,ori,andi,lb,lh,lw,lbu,lhu,slli,srli,srai,sb,sh,sw,beq,bne,blt,bge,bltu,bgeu,lui,auipc,jal} Restrict to instructions --version Display version
例如,仅使用add、or和slti指令生成100条汇编程序指令:
riscv-random-asm 100 -i add -i or -i slti
拆卸机器代码
您可以在指令级别将机器代码反汇编为汇编代码:
riscv-machinsn-decode hexstring 0x007938b3 0xc9650993
也可以直接反汇编对象文件:
riscv-machinsn-decode objfile file.o
自动测试随机汇编程序序列
riscv-random-asm-check生成随机汇编程序序列,编译它们,读回机器代码并匹配它们。 你可以用它来测试你的编译器,但它也被用作对riscv模型本身的健全性检查。
riscv-random-asm-check
默认情况下,它将使用riscv32-unknown-elf-gcc和riscv32-unknown-elf-objcopy,但您可以使用--compiler和--objcopy配置工具。
自动测试将测试所有指令,您可以再次限制指令数和指令:
riscv-random-asm-check 1000 -i xor
最后,您可以分别对各个指令执行检查(与其他选项结合使用:
riscv-random-asm-check -s