零门槛上手的RISC-V项目:蜂鸟e203(附RTL-Hierarchy欣赏小技巧)

chipcamp@chipcamp:~/src/riscv$ cat /etc/os-release ##ubuntu22系统@十年旧机器。

PRETTY_NAME="Ubuntu 22.04 LTS"

NAME="Ubuntu"

VERSION_ID="22.04"

VERSION ="22.04 (Jammy Jellyfish)"

VERSION_CODENAME=jammy

ID=ubuntu

ID_LIKE=debian

HOME_URL="https://www.ubuntu.com/"

SUPPORT_URL="https://help.ubuntu.com/"

BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"

PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"

UBUNTU_CODENAME=jammy

chipcamp@chipcamp:~/src/riscv$ which iverilog

/usr/bin/iverilog

chipcamp@chipcamp:~/src/riscv$ which verilator

/usr/bin/ verilator

chipcamp@chipcamp:~/src/riscv$ which gtkwave

/usr/bin/gtkwave

chipcamp@chipcamp:~/src/riscv$ which riscv64-unknown-elf-gcc

/usr/bin/riscv64-unknown-elf-gcc

chipcamp@chipcamp:~/src/riscv$

chipcamp@chipcamp:~/src/riscv$ dpkg-query -S /usr/bin/iverilog /usr/bin/verilator /usr/bin/gtkwave /usr/bin/riscv64-unknown-elf-gcc

iverilog: /usr/bin/iverilog

verilator: /usr/bin/verilator

gtkwave: /usr/bin/gtkwave

gcc-riscv64-unknown-elf: /usr/bin/riscv64-unknown-elf-gcc

------以上所有的软件,都是使用apt-get install安装的,这是本文所说的"0依赖"。

chipcamp@chipcamp:~/src/riscv$ git clone https://gitcode.com/ChipCamp/e203_hbirdv2.git

Cloning into 'e203_hbirdv2'...

remote: Enumerating objects: 1502, done.

remote: Total 1502 (delta 0), reused 0 (delta 0), pack-reused 1502 (from 1)

Receiving objects: 100% (1502/1502), 62.36 MiB | 509.00 KiB/s, done.

Resolving deltas: 100% (735/735), done.

chipcamp@chipcamp:~/src/riscv$ ls -la

total 32

drwxrwxr-x 8 chipcamp chipcamp 4096 Oct 7 16:03 .

drwxrwxr-x 7 chipcamp chipcamp 4096 Oct 7 09:32 ..

drwxrwxr-x 11 chipcamp chipcamp 4096 Oct 7 11:04 darkriscv

drwxrwxr-x 12 chipcamp chipcamp 4096 Oct 7 16:06 e203_hbirdv2

drwxrwxr-x 6 chipcamp chipcamp 4096 Oct 7 12:39 nerv

drwxrwxr-x 11 chipcamp chipcamp 4096 Oct 7 14:19 picorv32

drwxrwxr-x 12 chipcamp chipcamp 4096 Oct 7 14:03 tinyriscv

drwxrwxr-x 8 chipcamp chipcamp 4096 Oct 7 14:55 yarvi

chipcamp@chipcamp:~/src/riscv cd e203_hbirdv2/ chipcamp@chipcamp:\~/src/riscv/e203_hbirdv2 ls -la

total 84

drwxrwxr-x 12 chipcamp chipcamp 4096 Oct 7 16:06 .

drwxrwxr-x 8 chipcamp chipcamp 4096 Oct 7 16:03 ..

drwxrwxr-x 2 chipcamp chipcamp 4096 Oct 7 16:05 comments

drwxrwxr-x 3 chipcamp chipcamp 4096 Oct 7 16:05 doc

-rw-rw-r-- 1 chipcamp chipcamp 2551 Oct 7 16:06 e203_core.core

-rw-rw-r-- 1 chipcamp chipcamp 4358 Oct 7 16:06 e203_soc.core

drwxrwxr-x 4 chipcamp chipcamp 4096 Oct 7 16:06 fpga

drwxrwxr-x 8 chipcamp chipcamp 4096 Oct 7 16:06 .git

drwxrwxr-x 3 chipcamp chipcamp 4096 Oct 7 16:05 .github

-rw-rw-r-- 1 chipcamp chipcamp 46 Oct 7 16:05 .gitignore

-rw-rw-r-- 1 chipcamp chipcamp 11358 Oct 7 16:05 LICENSE

drwxrwxr-x 2 chipcamp chipcamp 4096 Oct 7 16:06 pics

-rw-rw-r-- 1 chipcamp chipcamp 4815 Oct 7 16:05 README.md

drwxrwxr-x 4 chipcamp chipcamp 4096 Oct 7 16:06 riscv-tools

drwxrwxr-x 3 chipcamp chipcamp 4096 Oct 7 16:06 rtl

drwxrwxr-x 2 chipcamp chipcamp 4096 Oct 7 16:06 tb

drwxrwxr-x 3 chipcamp chipcamp 4096 Oct 7 16:06 vsim

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "*akefile"

./vsim/Makefile

./vsim/bin/run.makefile

./doc/Makefile

./fpga/mcu200t/Makefile

./fpga/ddr200t/Makefile

./fpga/Makefile

./riscv-tools/fpga_test4sim/coremark4sim/Makefile

./riscv-tools/fpga_test4sim/dhrystone4sim/Makefile

./riscv-tools/riscv-tests/benchmarks/Makefile

./riscv-tools/riscv-tests/mt/Makefile

./riscv-tools/riscv-tests/isa/Makefile

./riscv-tools/riscv-tests/debug/Makefile

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ cd vsim

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ ls -la

total 24

drwxrwxr-x 3 chipcamp chipcamp 4096 Oct 7 16:06 .

drwxrwxr-x 12 chipcamp chipcamp 4096 Oct 7 16:06 ..

drwxrwxr-x 2 chipcamp chipcamp 4096 Oct 7 16:06 bin

-rw-rw-r-- 1 chipcamp chipcamp 12 Oct 7 16:06 .gitignore

-rw-rw-r-- 1 chipcamp chipcamp 2083 Oct 7 16:06 Makefile

-rw-rw-r-- 1 chipcamp chipcamp 729 Oct 7 16:06 README.md

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ vi Makefile

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ make

mkdir -p /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run

rm -f /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/Makefile

ln -s /home/chipcamp/src/riscv/e203_hbirdv2/vsim/bin/run.makefile /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/Makefile

make compile RUN_DIR=/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run SIM_TOOL=iverilog -C /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run

make1: Entering directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

sed -i '1i\`define iverilog\' /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/tb/tb_top.v

sed: can't read /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/tb/tb_top.v: No such file or directory

make1: *** Makefile:118: compile.flg Error 2

make1: Leaving directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

make: *** Makefile:30: compile Error 2

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ make all

make compile RUN_DIR=/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run SIM_TOOL=iverilog -C /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run

make1: Entering directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

sed -i '1i\`define iverilog\' /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/tb/tb_top.v

sed: can't read /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/tb/tb_top.v: No such file or directory

make1: *** Makefile:118: compile.flg Error 2

make1: Leaving directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

make: *** Makefile:30: compile Error 2

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ find .. -name "tb_top.v"

../tb/tb_top.v

----有这个文件但不在install/tb目录下,而是在tb目录下。

----不过,不过,这个错误并不是根本原因,或者说不是解决办法。

----解决办法是,先运行一次make install,然后再运行make all就可以了!

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ make install

mkdir -p /home/chipcamp/src/riscv/e203_hbirdv2/vsim/install/tb

cp /home/chipcamp/src/riscv/e203_hbirdv2/vsim/../tb/*.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/install/tb -rf

cp /home/chipcamp/src/riscv/e203_hbirdv2/vsim/../rtl/e203 /home/chipcamp/src/riscv/e203_hbirdv2/vsim/install/rtl -rf

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2/vsim$ make all

make compile RUN_DIR=/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run SIM_TOOL=iverilog -C /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run

make1: Entering directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

sed -i '1i\`define iverilog\' /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/tb/tb_top.v

iverilog -o vvp.exec -I "/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/" -I "/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/" -I "/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_i2c/" -D DISABLE_SV_ASSERTION=1 -g2005-sv /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/config.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_biu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_clk_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_clkgate.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_core.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_cpu_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_cpu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_defines.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_dtcm_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_dtcm_ram.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_extend_csr.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu_bjp.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu_csrctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu_dpath.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu_lsuagu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu_muldiv.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu_rglr.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_alu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_branchslv.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_commit.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_csr.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_decode.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_disp.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_excp.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_longpwbck.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_nice.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_oitf.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_regfile.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_exu_wbck.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_ifu_ifetch.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_ifu_ift2icb.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_ifu_litebpu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_ifu_minidec.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_ifu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_irq_sync.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_itcm_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_itcm_ram.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_lsu_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_lsu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_reset_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/core/e203_srams.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/debug/sirv_debug_csr.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/debug/sirv_debug_module.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/debug/sirv_debug_ram.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/debug/sirv_debug_rom.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/debug/sirv_jtag_dtm.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/fab/sirv_icb1to16_bus.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/fab/sirv_icb1to2_bus.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/fab/sirv_icb1to8_bus.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_1cyc_sram_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_gnrl_bufs.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_gnrl_dffs.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_gnrl_icbs.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_gnrl_ram.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_gnrl_xchecker.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_sim_ram.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/general/sirv_sram_icb_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/mems/sirv_mrom_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/mems/sirv_mrom.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_aon_lclkgen_regs.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_aon_porrst.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_aon_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_aon.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_aon_wrapper.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_AsyncResetReg.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_AsyncResetRegVec_129.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_AsyncResetRegVec_1.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_AsyncResetRegVec_36.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_AsyncResetRegVec.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_clint_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_clint.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_DeglitchShiftRegister.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_expl_axi_slv.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_flash_qspi_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_flash_qspi.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_hclkgen_regs.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_jtaggpioport.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_LevelGateway.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_plic_man.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_plic_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_pmu_core.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_pmu.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_qspi_arbiter.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_qspi_fifo.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_qspi_media.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_qspi_physical.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_queue_1.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_queue.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_repeater_6.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_ResetCatchAndSync_2.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_ResetCatchAndSync.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_rtc.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_spi_flashmap.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_tlfragmenter_qspi_1.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_tl_repeater_5.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_tlwidthwidget_qspi.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/sirv_wdog.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/soc/e203_soc_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_clint.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_gfcm.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_hclkgen_rstsync.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_hclkgen.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_main.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_mems.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_nice_core.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_perips.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_plic.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_pllclkdiv.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_pll.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/subsys/e203_subsys_top.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/adv_timer_apb_if.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/apb_adv_timer.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/comparator.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/input_stage.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/prescaler.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/timer_cntrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/timer_module.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_adv_timer/up_down_counter.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_gpio/apb_gpio.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_i2c/apb_i2c.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_i2c/i2c_master_bit_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_i2c/i2c_master_byte_ctrl.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_i2c/i2c_master_defines.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/apb_spi_master.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/spi_master_apb_if.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/spi_master_clkgen.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/spi_master_controller.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/spi_master_fifo.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/spi_master_rx.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_spi_master/spi_master_tx.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_uart/apb_uart.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_uart/io_generic_fifo.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_uart/uart_interrupt.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_uart/uart_rx.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/rtl/perips/apb_uart/uart_tx.v /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../install/tb/tb_top.v ;

touch compile.flg

make1: Leaving directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

make run DUMPWAVE=1 TESTCASE=/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add SIM_TOOL=iverilog RUN_DIR=/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run -C /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run

make1: Entering directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

rm -rf rv32ui-p-add

mkdir rv32ui-p-add

cd rv32ui-p-add; vvp /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/vvp.exec -lxt2 +DUMPWAVE=1 +TESTCASE=/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add +SIM_TOOL=iverilog 2>&1 | tee rv32ui-p-add.log; cd /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run;

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TESTCASE= /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add

iverlog used

LXT2 info: dumpfile tb_top.vcd opened for output.

ITCM 0x00: 340510730001aa0d

ITCM 0x01: ff85051300002517

ITCM 0x02: 01f5222301e52023

ITCM 0x03: 040f416334202f73

ITCM 0x04: 4fa507ff02634fa1

ITCM 0x05: 0c634fad05ff0f63

ITCM 0x06: 0bff05634f8505ff

ITCM 0x07: 4f9d0dff00634f95

ITCM 0x16: 2f03f52505130000

ITCM 0x20: 2f8300052f03f065

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~ Test Result Summary ~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~TESTCASE: /home/chipcamp/src/riscv/e203_hbirdv2/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add ~~~~~~~~~~~~~

~~~~~~~~~~~~~~Total cycle_count value: 25804 ~~~~~~~~~~~~~

~~~~~~~~~~The valid Instruction Count: 16560 ~~~~~~~~~~~~~

~~~~~The test ending reached at cycle: 25758 ~~~~~~~~~~~~~

~~~~~~~~~~~~~~~The final x3 Reg value: 1 ~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~ TEST_PASS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~ ##### ## #### #### ~~~~~~~~~~~~~~~~

~~~~~~~~~ # # # # # # ~~~~~~~~~~~~~~~~

~~~~~~~~~ # # # # #### #### ~~~~~~~~~~~~~~~~

~~~~~~~~~ ##### ###### # #~~~~~~~~~~~~~~~~

~~~~~~~~~ # # # # # # #~~~~~~~~~~~~~~~~

~~~~~~~~~ # # # #### #### ~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

make1: Leaving directory '/home/chipcamp/src/riscv/e203_hbirdv2/vsim/run'

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "*.v" | wc

276 276 11347

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ grep -raw "readmemh" *

tb/tb_top.v: $readmemh({testcase, ".verilog"}, itcm_mem);

vsim/run/vvp.exec: %vpi_call/w 6 271 "$readmemh", S<0,vec4,u2464>, v0x63e8a457b460 {1 0 0};

vsim/install/tb/tb_top.v: $readmemh({testcase, ".verilog"}, itcm_mem);

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "vvp.exec"

./vsim/run/vvp.exec

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "vvp.exec" | xargs ls -l

-rwxr-xr-x 1 chipcamp chipcamp 8970035 Oct 7 16:12 ./vsim/run/vvp.exec

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "vvp.exec" | xargs file

./vsim/run/vvp.exec: a /usr/bin/vvp script, ASCII text executable

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$

----make all测试通过,打印出TEST_PASS。这个测试例的神奇之处在于,200多个.v文件,作为iVerilog命令行的参数,进行仿真,使用了一个测试用例rv32ui-p-add。

----接下来还有一些make的target,其中make regress可以进行很多很多TESTCASE的测试。

----200多个.v文件,11万行verilog代码,是一个相当大的项目了。欣赏一下。

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "*.v" | xargs wc

359 938 11409 ./tb/tb_top.v

360 940 11426 ./vsim/install/tb/tb_top.v

356 907 14159 ./vsim/install/rtl/fab/sirv_icb1to2_bus.v

1028 2483 44609 ./vsim/install/rtl/fab/sirv_icb1to16_bus.v

677 1665 28575 ./vsim/install/rtl/fab/sirv_icb1to8_bus.v

94 246 3400 ./vsim/install/rtl/subsys/e203_subsys_clint.v

57 167 2209 ./vsim/install/rtl/subsys/e203_subsys_hclkgen_rstsync.v

2153 5348 77305 ./vsim/install/rtl/subsys/e203_subsys_perips.v

517 1233 17417 ./vsim/install/rtl/subsys/e203_subsys_mems.v

62 211 2452 ./vsim/install/rtl/subsys/e203_subsys_pllclkdiv.v

655 1404 25414 ./vsim/install/rtl/subsys/e203_subsys_top.v

150 355 4732 ./vsim/install/rtl/subsys/e203_subsys_plic.v

53 190 2145 ./vsim/install/rtl/subsys/e203_subsys_pll.v

505 2133 23180 ./vsim/install/rtl/subsys/e203_subsys_nice_core.v

116 328 3693 ./vsim/install/rtl/subsys/e203_subsys_hclkgen.v

109 248 3158 ./vsim/install/rtl/subsys/e203_subsys_gfcm.v

910 2262 35792 ./vsim/install/rtl/subsys/e203_subsys_main.v

87 234 2575 ./vsim/install/rtl/general/sirv_gnrl_ram.v

49 155 1987 ./vsim/install/rtl/general/sirv_gnrl_xchecker.v

167 453 5705 ./vsim/install/rtl/general/sirv_sram_icb_ctrl.v

101 293 3115 ./vsim/install/rtl/general/sirv_sim_ram.v

523 1855 15365 ./vsim/install/rtl/general/sirv_gnrl_bufs.v

109 319 3699 ./vsim/install/rtl/general/sirv_1cyc_sram_ctrl.v

276 636 6294 ./vsim/install/rtl/general/sirv_gnrl_dffs.v

1843 5385 61041 ./vsim/install/rtl/general/sirv_gnrl_icbs.v

344 917 13172 ./vsim/install/rtl/core/e203_dtcm_ctrl.v

117 621 5563 ./vsim/install/rtl/core/e203_ifu_litebpu.v

636 2818 31149 ./vsim/install/rtl/core/e203_exu_alu_muldiv.v

1234 4957 54374 ./vsim/install/rtl/core/e203_exu_decode.v

244 728 9240 ./vsim/install/rtl/core/e203_ifu.v

108 282 3169 ./vsim/install/rtl/core/e203_reset_ctrl.v

115 441 4903 ./vsim/install/rtl/core/e203_exu_wbck.v

129 473 5007 ./vsim/install/rtl/core/e203_exu_regfile.v

785 2230 41575 ./vsim/install/rtl/core/e203_defines.v

52 166 2086 ./vsim/install/rtl/core/e203_extend_csr.v

571 1698 22490 ./vsim/install/rtl/core/e203_itcm_ctrl.v

71 186 2565 ./vsim/install/rtl/core/e203_dtcm_ram.v

53 155 1941 ./vsim/install/rtl/core/e203_clkgate.v

962 2223 32453 ./vsim/install/rtl/core/e203_exu.v

680 3134 26723 ./vsim/install/rtl/core/e203_exu_csr.v

903 2763 35926 ./vsim/install/rtl/core/e203_exu_alu.v

948 2437 40267 ./vsim/install/rtl/core/e203_biu.v

112 237 3241 ./vsim/install/rtl/core/e203_ifu_minidec.v

119 419 4850 ./vsim/install/rtl/core/e203_exu_alu_rglr.v

137 523 5724 ./vsim/install/rtl/core/e203_exu_alu_csrctrl.v

133 579 6101 ./vsim/install/rtl/core/e203_exu_branchslv.v

551 2522 26989 ./vsim/install/rtl/core/e203_exu_excp.v

964 2765 37883 ./vsim/install/rtl/core/e203_lsu_ctrl.v

291 1583 14455 ./vsim/install/rtl/core/e203_exu_disp.v

111 264 3381 ./vsim/install/rtl/core/e203_irq_sync.v

124 449 5112 ./vsim/install/rtl/core/e203_exu_nice.v

127 422 4975 ./vsim/install/rtl/core/e203_exu_alu_bjp.v

348 879 14483 ./vsim/install/rtl/core/e203_lsu.v

154 505 4944 ./vsim/install/rtl/core/e203_clk_ctrl.v

914 2218 36063 ./vsim/install/rtl/core/e203_core.v

100 280 3756 ./vsim/install/rtl/core/config.v

72 184 2584 ./vsim/install/rtl/core/e203_itcm_ram.v

589 1446 20019 ./vsim/install/rtl/core/e203_cpu_top.v

554 2321 22753 ./vsim/install/rtl/core/e203_ifu_ifetch.v

348 857 12641 ./vsim/install/rtl/core/e203_exu_commit.v

532 1416 17291 ./vsim/install/rtl/core/e203_exu_alu_dpath.v

201 645 7702 ./vsim/install/rtl/core/e203_exu_longpwbck.v

896 2077 33341 ./vsim/install/rtl/core/e203_cpu.v

176 649 7182 ./vsim/install/rtl/core/e203_exu_oitf.v

856 4229 39613 ./vsim/install/rtl/core/e203_ifu_ift2icb.v

713 2871 29779 ./vsim/install/rtl/core/e203_exu_alu_lsuagu.v

114 315 3953 ./vsim/install/rtl/core/e203_srams.v

132 433 4421 ./vsim/install/rtl/mems/sirv_mrom.v

67 214 2512 ./vsim/install/rtl/mems/sirv_mrom_top.v

51 170 2266 ./vsim/install/rtl/perips/sirv_ResetCatchAndSync.v

41 130 1754 ./vsim/install/rtl/perips/sirv_aon_porrst.v

999 2784 40346 ./vsim/install/rtl/perips/apb_adv_timer/adv_timer_apb_if.v

63 273 2127 ./vsim/install/rtl/perips/apb_adv_timer/prescaler.v

606 1828 24848 ./vsim/install/rtl/perips/apb_adv_timer/apb_adv_timer.v

154 545 5104 ./vsim/install/rtl/perips/apb_adv_timer/up_down_counter.v

137 455 4160 ./vsim/install/rtl/perips/apb_adv_timer/input_stage.v

153 504 5241 ./vsim/install/rtl/perips/apb_adv_timer/comparator.v

71 265 2274 ./vsim/install/rtl/perips/apb_adv_timer/timer_cntrl.v

227 699 7982 ./vsim/install/rtl/perips/apb_adv_timer/timer_module.v

495 1559 15078 ./vsim/install/rtl/perips/sirv_qspi_media.v

115 281 3975 ./vsim/install/rtl/perips/sirv_plic_top.v

681 2422 21963 ./vsim/install/rtl/perips/sirv_pmu_core.v

472 1622 15411 ./vsim/install/rtl/perips/sirv_spi_flashmap.v

735 2480 19315 ./vsim/install/rtl/perips/sirv_qspi_physical.v

513 1697 16665 ./vsim/install/rtl/perips/sirv_tlfragmenter_qspi_1.v

522 2340 24865 ./vsim/install/rtl/perips/sirv_plic_man.v

552 1655 25268 ./vsim/install/rtl/perips/sirv_pmu.v

44 139 1803 ./vsim/install/rtl/perips/sirv_AsyncResetRegVec.v

487 1184 18959 ./vsim/install/rtl/perips/sirv_aon_top.v

467 1567 15739 ./vsim/install/rtl/perips/sirv_tlwidthwidget_qspi.v

216 678 6713 ./vsim/install/rtl/perips/apb_uart/uart_rx.v

192 574 5872 ./vsim/install/rtl/perips/apb_uart/uart_tx.v

113 540 4361 ./vsim/install/rtl/perips/apb_uart/io_generic_fifo.v

299 1173 12578 ./vsim/install/rtl/perips/apb_uart/apb_uart.v

89 324 2969 ./vsim/install/rtl/perips/apb_uart/uart_interrupt.v

69 217 2840 ./vsim/install/rtl/perips/sirv_aon_lclkgen_regs.v

228 800 7172 ./vsim/install/rtl/perips/sirv_qspi_arbiter.v

222 904 9789 ./vsim/install/rtl/perips/apb_gpio/apb_gpio.v

84 243 2758 ./vsim/install/rtl/perips/sirv_expl_axi_slv.v

426 1059 9927 ./vsim/install/rtl/perips/sirv_AsyncResetRegVec_129.v

167 589 5423 ./vsim/install/rtl/perips/sirv_tl_repeater_5.v

141 547 6194 ./vsim/install/rtl/perips/sirv_hclkgen_regs.v

43 165 1822 ./vsim/install/rtl/perips/sirv_DeglitchShiftRegister.v

388 1191 15163 ./vsim/install/rtl/perips/sirv_aon_wrapper.v

554 1234 24436 ./vsim/install/rtl/perips/sirv_flash_qspi_top.v

229 751 7132 ./vsim/install/rtl/perips/sirv_qspi_fifo.v

168 584 5379 ./vsim/install/rtl/perips/sirv_repeater_6.v

4014 14533 115829 ./vsim/install/rtl/perips/sirv_flash_qspi.v

6920 27632 208013 ./vsim/install/rtl/perips/sirv_aon.v

93 295 3590 ./vsim/install/rtl/perips/sirv_jtaggpioport.v

165 563 5717 ./vsim/install/rtl/perips/sirv_rtc.v

132 460 4020 ./vsim/install/rtl/perips/sirv_queue_1.v

349 1076 11023 ./vsim/install/rtl/perips/sirv_wdog.v

661 2450 19214 ./vsim/install/rtl/perips/sirv_clint.v

86 243 2681 ./vsim/install/rtl/perips/sirv_AsyncResetRegVec_36.v

171 562 6099 ./vsim/install/rtl/perips/sirv_queue.v

51 170 2274 ./vsim/install/rtl/perips/sirv_ResetCatchAndSync_2.v

156 465 7226 ./vsim/install/rtl/perips/sirv_clint_top.v

38 126 1729 ./vsim/install/rtl/perips/sirv_AsyncResetReg.v

128 440 4157 ./vsim/install/rtl/perips/apb_spi_master/spi_master_tx.v

132 456 4305 ./vsim/install/rtl/perips/apb_spi_master/spi_master_rx.v

497 1583 19049 ./vsim/install/rtl/perips/apb_spi_master/spi_master_controller.v

279 1097 11203 ./vsim/install/rtl/perips/apb_spi_master/apb_spi_master.v

179 882 8092 ./vsim/install/rtl/perips/apb_spi_master/spi_master_apb_if.v

114 740 4922 ./vsim/install/rtl/perips/apb_spi_master/spi_master_fifo.v

75 272 2307 ./vsim/install/rtl/perips/apb_spi_master/spi_master_clkgen.v

59 300 3011 ./vsim/install/rtl/perips/apb_i2c/i2c_master_defines.v

544 2224 20003 ./vsim/install/rtl/perips/apb_i2c/i2c_master_bit_ctrl.v

334 1103 10289 ./vsim/install/rtl/perips/apb_i2c/i2c_master_byte_ctrl.v

199 776 6967 ./vsim/install/rtl/perips/apb_i2c/apb_i2c.v

126 339 3512 ./vsim/install/rtl/perips/sirv_AsyncResetRegVec_1.v

55 190 2132 ./vsim/install/rtl/perips/sirv_LevelGateway.v

165 580 5601 ./vsim/install/rtl/debug/sirv_debug_csr.v

546 1656 19103 ./vsim/install/rtl/debug/sirv_debug_module.v

393 1420 16213 ./vsim/install/rtl/debug/sirv_jtag_dtm.v

209 999 8309 ./vsim/install/rtl/debug/sirv_debug_rom.v

56 169 2145 ./vsim/install/rtl/debug/sirv_debug_ram.v

286 644 10008 ./vsim/install/rtl/soc/e203_soc_top.v

377 601 9353 ./fpga/mcu200t/src/system.v

377 601 9353 ./fpga/ddr200t/src/system.v

356 907 14159 ./rtl/e203/fab/sirv_icb1to2_bus.v

1028 2483 44609 ./rtl/e203/fab/sirv_icb1to16_bus.v

677 1665 28575 ./rtl/e203/fab/sirv_icb1to8_bus.v

94 246 3400 ./rtl/e203/subsys/e203_subsys_clint.v

57 167 2209 ./rtl/e203/subsys/e203_subsys_hclkgen_rstsync.v

2153 5348 77305 ./rtl/e203/subsys/e203_subsys_perips.v

517 1233 17417 ./rtl/e203/subsys/e203_subsys_mems.v

62 211 2452 ./rtl/e203/subsys/e203_subsys_pllclkdiv.v

655 1404 25414 ./rtl/e203/subsys/e203_subsys_top.v

150 355 4732 ./rtl/e203/subsys/e203_subsys_plic.v

53 190 2145 ./rtl/e203/subsys/e203_subsys_pll.v

505 2133 23180 ./rtl/e203/subsys/e203_subsys_nice_core.v

116 328 3693 ./rtl/e203/subsys/e203_subsys_hclkgen.v

109 248 3158 ./rtl/e203/subsys/e203_subsys_gfcm.v

910 2262 35792 ./rtl/e203/subsys/e203_subsys_main.v

87 234 2575 ./rtl/e203/general/sirv_gnrl_ram.v

49 155 1987 ./rtl/e203/general/sirv_gnrl_xchecker.v

167 453 5705 ./rtl/e203/general/sirv_sram_icb_ctrl.v

101 293 3115 ./rtl/e203/general/sirv_sim_ram.v

523 1855 15365 ./rtl/e203/general/sirv_gnrl_bufs.v

109 319 3699 ./rtl/e203/general/sirv_1cyc_sram_ctrl.v

276 636 6294 ./rtl/e203/general/sirv_gnrl_dffs.v

1843 5385 61041 ./rtl/e203/general/sirv_gnrl_icbs.v

344 917 13172 ./rtl/e203/core/e203_dtcm_ctrl.v

117 621 5563 ./rtl/e203/core/e203_ifu_litebpu.v

636 2818 31149 ./rtl/e203/core/e203_exu_alu_muldiv.v

1234 4957 54374 ./rtl/e203/core/e203_exu_decode.v

244 728 9240 ./rtl/e203/core/e203_ifu.v

108 282 3169 ./rtl/e203/core/e203_reset_ctrl.v

115 441 4903 ./rtl/e203/core/e203_exu_wbck.v

129 473 5007 ./rtl/e203/core/e203_exu_regfile.v

785 2230 41575 ./rtl/e203/core/e203_defines.v

52 166 2086 ./rtl/e203/core/e203_extend_csr.v

571 1698 22490 ./rtl/e203/core/e203_itcm_ctrl.v

71 186 2565 ./rtl/e203/core/e203_dtcm_ram.v

53 155 1941 ./rtl/e203/core/e203_clkgate.v

962 2223 32453 ./rtl/e203/core/e203_exu.v

680 3134 26723 ./rtl/e203/core/e203_exu_csr.v

903 2763 35926 ./rtl/e203/core/e203_exu_alu.v

948 2437 40267 ./rtl/e203/core/e203_biu.v

112 237 3241 ./rtl/e203/core/e203_ifu_minidec.v

119 419 4850 ./rtl/e203/core/e203_exu_alu_rglr.v

137 523 5724 ./rtl/e203/core/e203_exu_alu_csrctrl.v

133 579 6101 ./rtl/e203/core/e203_exu_branchslv.v

551 2522 26989 ./rtl/e203/core/e203_exu_excp.v

964 2765 37883 ./rtl/e203/core/e203_lsu_ctrl.v

291 1583 14455 ./rtl/e203/core/e203_exu_disp.v

111 264 3381 ./rtl/e203/core/e203_irq_sync.v

124 449 5112 ./rtl/e203/core/e203_exu_nice.v

127 422 4975 ./rtl/e203/core/e203_exu_alu_bjp.v

348 879 14483 ./rtl/e203/core/e203_lsu.v

154 505 4944 ./rtl/e203/core/e203_clk_ctrl.v

914 2218 36063 ./rtl/e203/core/e203_core.v

100 280 3756 ./rtl/e203/core/config.v

72 184 2584 ./rtl/e203/core/e203_itcm_ram.v

589 1446 20019 ./rtl/e203/core/e203_cpu_top.v

554 2321 22753 ./rtl/e203/core/e203_ifu_ifetch.v

348 857 12641 ./rtl/e203/core/e203_exu_commit.v

532 1416 17291 ./rtl/e203/core/e203_exu_alu_dpath.v

201 645 7702 ./rtl/e203/core/e203_exu_longpwbck.v

896 2077 33341 ./rtl/e203/core/e203_cpu.v

176 649 7182 ./rtl/e203/core/e203_exu_oitf.v

856 4229 39613 ./rtl/e203/core/e203_ifu_ift2icb.v

713 2871 29779 ./rtl/e203/core/e203_exu_alu_lsuagu.v

114 315 3953 ./rtl/e203/core/e203_srams.v

132 433 4421 ./rtl/e203/mems/sirv_mrom.v

67 214 2512 ./rtl/e203/mems/sirv_mrom_top.v

51 170 2266 ./rtl/e203/perips/sirv_ResetCatchAndSync.v

41 130 1754 ./rtl/e203/perips/sirv_aon_porrst.v

999 2784 40346 ./rtl/e203/perips/apb_adv_timer/adv_timer_apb_if.v

63 273 2127 ./rtl/e203/perips/apb_adv_timer/prescaler.v

606 1828 24848 ./rtl/e203/perips/apb_adv_timer/apb_adv_timer.v

154 545 5104 ./rtl/e203/perips/apb_adv_timer/up_down_counter.v

137 455 4160 ./rtl/e203/perips/apb_adv_timer/input_stage.v

153 504 5241 ./rtl/e203/perips/apb_adv_timer/comparator.v

71 265 2274 ./rtl/e203/perips/apb_adv_timer/timer_cntrl.v

227 699 7982 ./rtl/e203/perips/apb_adv_timer/timer_module.v

495 1559 15078 ./rtl/e203/perips/sirv_qspi_media.v

115 281 3975 ./rtl/e203/perips/sirv_plic_top.v

681 2422 21963 ./rtl/e203/perips/sirv_pmu_core.v

472 1622 15411 ./rtl/e203/perips/sirv_spi_flashmap.v

735 2480 19315 ./rtl/e203/perips/sirv_qspi_physical.v

513 1697 16665 ./rtl/e203/perips/sirv_tlfragmenter_qspi_1.v

522 2340 24865 ./rtl/e203/perips/sirv_plic_man.v

552 1655 25268 ./rtl/e203/perips/sirv_pmu.v

44 139 1803 ./rtl/e203/perips/sirv_AsyncResetRegVec.v

487 1184 18959 ./rtl/e203/perips/sirv_aon_top.v

467 1567 15739 ./rtl/e203/perips/sirv_tlwidthwidget_qspi.v

216 678 6713 ./rtl/e203/perips/apb_uart/uart_rx.v

192 574 5872 ./rtl/e203/perips/apb_uart/uart_tx.v

113 540 4361 ./rtl/e203/perips/apb_uart/io_generic_fifo.v

299 1173 12578 ./rtl/e203/perips/apb_uart/apb_uart.v

89 324 2969 ./rtl/e203/perips/apb_uart/uart_interrupt.v

69 217 2840 ./rtl/e203/perips/sirv_aon_lclkgen_regs.v

228 800 7172 ./rtl/e203/perips/sirv_qspi_arbiter.v

222 904 9789 ./rtl/e203/perips/apb_gpio/apb_gpio.v

84 243 2758 ./rtl/e203/perips/sirv_expl_axi_slv.v

426 1059 9927 ./rtl/e203/perips/sirv_AsyncResetRegVec_129.v

167 589 5423 ./rtl/e203/perips/sirv_tl_repeater_5.v

141 547 6194 ./rtl/e203/perips/sirv_hclkgen_regs.v

43 165 1822 ./rtl/e203/perips/sirv_DeglitchShiftRegister.v

388 1191 15163 ./rtl/e203/perips/sirv_aon_wrapper.v

554 1234 24436 ./rtl/e203/perips/sirv_flash_qspi_top.v

229 751 7132 ./rtl/e203/perips/sirv_qspi_fifo.v

168 584 5379 ./rtl/e203/perips/sirv_repeater_6.v

4014 14533 115829 ./rtl/e203/perips/sirv_flash_qspi.v

6920 27632 208013 ./rtl/e203/perips/sirv_aon.v

93 295 3590 ./rtl/e203/perips/sirv_jtaggpioport.v

165 563 5717 ./rtl/e203/perips/sirv_rtc.v

132 460 4020 ./rtl/e203/perips/sirv_queue_1.v

349 1076 11023 ./rtl/e203/perips/sirv_wdog.v

661 2450 19214 ./rtl/e203/perips/sirv_clint.v

86 243 2681 ./rtl/e203/perips/sirv_AsyncResetRegVec_36.v

171 562 6099 ./rtl/e203/perips/sirv_queue.v

51 170 2274 ./rtl/e203/perips/sirv_ResetCatchAndSync_2.v

156 465 7226 ./rtl/e203/perips/sirv_clint_top.v

38 126 1729 ./rtl/e203/perips/sirv_AsyncResetReg.v

128 440 4157 ./rtl/e203/perips/apb_spi_master/spi_master_tx.v

132 456 4305 ./rtl/e203/perips/apb_spi_master/spi_master_rx.v

497 1583 19049 ./rtl/e203/perips/apb_spi_master/spi_master_controller.v

279 1097 11203 ./rtl/e203/perips/apb_spi_master/apb_spi_master.v

179 882 8092 ./rtl/e203/perips/apb_spi_master/spi_master_apb_if.v

114 740 4922 ./rtl/e203/perips/apb_spi_master/spi_master_fifo.v

75 272 2307 ./rtl/e203/perips/apb_spi_master/spi_master_clkgen.v

59 300 3011 ./rtl/e203/perips/apb_i2c/i2c_master_defines.v

544 2224 20003 ./rtl/e203/perips/apb_i2c/i2c_master_bit_ctrl.v

334 1103 10289 ./rtl/e203/perips/apb_i2c/i2c_master_byte_ctrl.v

199 776 6967 ./rtl/e203/perips/apb_i2c/apb_i2c.v

126 339 3512 ./rtl/e203/perips/sirv_AsyncResetRegVec_1.v

55 190 2132 ./rtl/e203/perips/sirv_LevelGateway.v

165 580 5601 ./rtl/e203/debug/sirv_debug_csr.v

546 1656 19103 ./rtl/e203/debug/sirv_debug_module.v

393 1420 16213 ./rtl/e203/debug/sirv_jtag_dtm.v

209 999 8309 ./rtl/e203/debug/sirv_debug_rom.v

56 169 2145 ./rtl/e203/debug/sirv_debug_ram.v

286 644 10008 ./rtl/e203/soc/e203_soc_top.v

114291 376396 4143113 total

----这个项目是一个完整的RISC-V MCU for IoT的项目,有多达286个verilog源文件11万行源代码(即使考虑未剔除空行和注释代码量也是相当可观),所有.v文件的解读显然不是文章标题所说的零门槛,但项目仍然通过Makefile支持iverilog的一键式仿真,这个一键式仿真就是本系列标题所说的零门槛,代表的是对开源RISC-V项目的"体验"----仿真运行看到RISC-V RTL的逻辑功能效果。

----尝试通过gtkwave查看波形的软件,看看这个RTL的模块hierarchy。如下所示。

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "*.vcd"

./vsim/run/rv32ui-p-add/tb_top.vcd

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ find . -name "*.vcd" | xargs ls -l

-rw-rw-r-- 1 chipcamp chipcamp 6248329 Oct 7 16:13 ./vsim/run/rv32ui-p-add/tb_top.vcd

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$ gtkwave ./vsim/run/rv32ui-p-add/tb_top.vcd &

1 29950

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$

GTKWave Analyzer v3.3.104 (w)1999-2020 BSI

LXTLOAD | 24198 facilities

LXTLOAD | Read 5 block headers OK

LXTLOAD | 0 start time

LXTLOAD | 103346 end time

LXTLOAD |

LXTLOAD | Finished building 24198 facs.

LXTLOAD | Merging in 6651 aliases.

LXTLOAD | Building facility hierarchy tree.

LXTLOAD | Sorting facility hierarchy tree.

chipcamp@chipcamp:~/src/riscv/e203_hbirdv2$

----RTL的Hierarchy欣赏!!!

----最顶层的tb_top的两个信号clk和rst_n,其中rst_n在第120sec翻转。

<<<<<<<<END完>>>>>>>>

关键词:e203,蜂鸟,RTL-hierarchy, iverilog, verilator。

摘要:本文记录了开源RISC-V项目蜂鸟e203的仿真运行过程。该项目的verilog源文件有200多个11万多行,但它也通过Makefile提供了iverilog仿真脚本,通过make命令即可运行iverilog对200多个verilog文件组成的复杂的RTL项目进行功能仿真。对于这种复杂的RTL项目,本文还记录了一个使用gtkwave查看波形软件来查看和鉴赏RTL-hierarchy的小小灵感。

相关推荐
国科安芯2 天前
商业立方星平台中高集成度抗辐射MCU的功耗优化与批量化应用可行性探讨
单片机·嵌入式硬件·架构·risc-v·抗辐射·as32x601
RISCV_Explorer3 天前
RISC-V RVV向量性能调优实战——LMUL与SEW参数选型、访存瓶颈判断与微基准方法
risc-v
国科安芯6 天前
星载通信载荷信号处理中抗辐射微控制器的选型与适应性分析
人工智能·嵌入式硬件·mcu·信号处理·risc-v·抗辐射·空间信息
RISCV_Explorer7 天前
RISC-V RVV向量编程模型机制解析——vsetvl配置、掩码与尾元素策略及长度无关编程
后端·risc-v
RISCV_Explorer7 天前
RISC-V电源管理与低功耗实战——WFI指令、电源域划分与唤醒路径设计
单片机·嵌入式硬件·risc-v
ChipCamp7 天前
Spike-pk在RISC-V RTL开发验证中的应用:黄金参考基准
risc-v·spike·difftest·co-simulation·spike-pk·riscv-pk
Hi202402177 天前
Vortex CUDA 生态适配:让 CUDA C、CUTLASS 与 Triton 在 RISC-V GPGPU 上运行
人工智能·risc-v·gpgpu
国科安芯8 天前
用 AS32X601 做一块关节电机驱动板:三相桥、电流采样、封波保护、FOC 代码一次讲透
risc-v·foc·bldc·关节电机·机器人关节·as32x601·三相逆变桥
硅基手札8 天前
【risc-v专栏 07】启动与 bare-metal 流程
risc-v