【IC前端虚拟项目】工程目录组织说明

2023-12-13 04:50:50

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客

文档目录在“MVU芯片前端设计验证虚拟项目”中,截至本篇文章时,包含了MVU_FS.md/project_req.md和mvu_vp_list.xlsx三个文件。

  • MVU_FS是模块的方案文档,除了feature和对外接口已经提供外,其他部分请自行完成;
  • project_req是设计要求和设计及验证需要交付的代码和文档;
  • mvu_vp_list是测试点文档的参考;

代码目录在“mvu_prj”中,结构如下:

.
├── project.bashrc
├── rtl
│?? ├── cbb
│?? │?? ├── bw_pipe.v
│?? │?? ├── flop
│?? │?? │?? ├── dffe.v
│?? │?? │?? ├── dffre.v
│?? │?? │?? ├── dffr.v
│?? │?? │?? └── dff.v
│?? │?? ├── fw_bw_pipe.v
│?? │?? ├── fw_bw_shift_pipe.v
│?? │?? ├── fw_pipe.v
│?? │?? ├── hand_fifo.v
│?? │?? ├── hand_merge.v
│?? │?? ├── hand_split_align.v
│?? │?? ├── hand_split_unalign.v
│?? │?? ├── mvu_cbb.lst
│?? │?? ├── ral
│?? │?? │?? ├── apb2hostif.sv
│?? │?? │?? ├── vmm_ral_a0_field_rtl.sv
│?? │?? │?? ├── vmm_ral_a1_field_rtl.sv
│?? │?? │?? ├── vmm_ral_host_itf.sv
│?? │?? │?? ├── vmm_ral_notifier_rtl.sv
│?? │?? │?? ├── vmm_ral_rc_field_rtl.sv
│?? │?? │?? ├── vmm_ral_ro_field_rtl.sv
│?? │?? │?? ├── vmm_ral_ru_field_rtl.sv
│?? │?? │?? ├── vmm_ral_rw_field_rtl.sv
│?? │?? │?? ├── vmm_ral_w1c_field_rtl.sv
│?? │?? │?? └── vmm_ral_wo_field_rtl.sv
│?? │?? └── rr_dispatch.v
│?? ├── mvu_core.v
│?? ├── mvu_inst_buffer.v
│?? ├── mvu_param.v
│?? ├── mvu_read_path.v
│?? ├── mvu_reg.sv
│?? ├── mvu_top_define.v
│?? ├── mvu_top.rtl.lst
│?? ├── mvu_top.v
│?? ├── mvu_write_path.v
│?? ├── novas.conf
│?? ├── novas.rc
│?? ├── reg
│?? │?? ├── geany_run_script.bat
│?? │?? ├── gen_reg.py
│?? │?? ├── gen_xml_trans.py
│?? │?? ├── MVU_REG_Description.ralf
│?? │?? ├── MVU_REG_Description.xml
│?? │?? ├── MVU_REG_inf_trans.sv
│?? │?? ├── MVU_REG_log.txt
│?? │?? ├── MVU_REG.xlsx
│?? │?? └── reg
│?? │??     └── MVU_REG_Description
│?? │??         ├── ral_global_cfg.sv
│?? │??         ├── ral_global_status.sv
│?? │??         ├── ral_MVU_REG.sv
│?? │??         ├── ral_sys_MVU_REG_rtl.sv
│?? │??         ├── rtl_global_cfg
│?? │??         │?? ├── ral_blk_MVU_REG_global_cfg_rtl.sv
│?? │??         │?? ├── ral_reg_MVU_REG_global_cfg_AXI_R_CFG_rtl.sv
│?? │??         │?? ├── ral_reg_MVU_REG_global_cfg_AXI_R_OSTD_CFG_rtl.sv
│?? │??         │?? ├── ral_reg_MVU_REG_global_cfg_AXI_W_CFG_rtl.sv
│?? │??         │?? └── ral_reg_MVU_REG_global_cfg_GLOBAL_rtl.sv
│?? │??         └── rtl_global_status
│?? │??             ├── ral_blk_MVU_REG_global_status_rtl.sv
│?? │??             ├── ral_reg_MVU_REG_global_status_interface_rtl.sv
│?? │??             ├── ral_reg_MVU_REG_global_status_itf_rtl.sv
│?? │??             └── ral_reg_MVU_REG_global_status_ostd_rtl.sv
│?? ├── ut_ver
│?? │?? ├── mvu_read_path_verification
│?? │?? │?? ├── cfg
│?? │?? │?? │?? ├── cfg.mk
│?? │?? │?? │?? ├── check_fail.pl
│?? │?? │?? │?? ├── run.do
│?? │?? │?? │?? └── tb.f
│?? │?? │?? ├── sim
│?? │?? │?? │?? └── Makefile
│?? │?? │?? ├── top
│?? │?? │?? │?? └── testbench.sv
│?? │?? │?? └── ver
│?? │?? │??     └── mvu_read_path_pkg.sv
│?? │?? └── mvu_write_path_verification
│?? │??     ├── cfg
│?? │??     │?? ├── cfg.mk
│?? │??     │?? ├── check_fail.pl
│?? │??     │?? ├── run.do
│?? │??     │?? └── tb.f
│?? │??     ├── sim
│?? │??     │?? └── Makefile
│?? │??     ├── top
│?? │??     │?? └── testbench.sv
│?? │??     └── ver
│?? │??         └── mvu_write_path_pkg.sv
│?? └── verdiLog
│??     ├── compiler.log
│??     ├── exe.log
│??     ├── novas_autosave.ses
│??     ├── novas_autosave.ses.config
│??     ├── novas_autosave.ses.png
│??     ├── novas.log
│??     ├── novas_ones_IC_EDA_8908.log.result
│??     ├── novas.rc
│??     ├── pes.bat
│??     ├── tdc.list.oneSearch
│??     ├── ToNetlist.log
│??     ├── turbo.log
│??     ├── verdi.cmd
│??     ├── verdi.cmd.bak
│??     └── verdi_perf_err.log
├── script
│?? ├── cmp_rtl
│?? ├── cp.py
│?? └── git_push.py
└── ver
    ├── common
    │?? ├── apb_utils
    │?? │?? ├── apb_utils.lst
    │?? │?? └── src
    │?? │??     ├── apb_adapter.sv
    │?? │??     ├── apb_agent.sv
    │?? │??     ├── apb_driver.sv
    │?? │??     ├── apb_interface.sv
    │?? │??     ├── apb_monitor.sv
    │?? │??     ├── apb_ready_drv.sv
    │?? │??     ├── apb_scb.sv
    │?? │??     ├── apb_sequencer.sv
    │?? │??     ├── apb_sequence.sv
    │?? │??     └── apb_transaction.sv
    │?? ├── axi_ar_utils
    │?? │?? ├── axi_ar.cfg
    │?? │?? ├── axi_ar_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── axi_ar_agent.sv
    │?? │?? │?? ├── axi_ar_driver.sv
    │?? │?? │?? ├── axi_ar_interface.sv
    │?? │?? │?? ├── axi_ar_monitor.sv
    │?? │?? │?? ├── axi_ar_ready_drv.sv
    │?? │?? │?? ├── axi_ar_scb.sv
    │?? │?? │?? ├── axi_ar_sequencer.sv
    │?? │?? │?? ├── axi_ar_sequence.sv
    │?? │?? │?? ├── axi_ar_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── axi_ar_env.sv
    │?? │??     ├── axi_ar_sim.lst
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── harness.sv
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     └── sanity_case.sv
    │?? ├── axi_aw_utils
    │?? │?? ├── axi_aw.cfg
    │?? │?? ├── axi_aw_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── axi_aw_agent.sv
    │?? │?? │?? ├── axi_aw_driver.sv
    │?? │?? │?? ├── axi_aw_interface.sv
    │?? │?? │?? ├── axi_aw_monitor.sv
    │?? │?? │?? ├── axi_aw_ready_drv.sv
    │?? │?? │?? ├── axi_aw_scb.sv
    │?? │?? │?? ├── axi_aw_sequencer.sv
    │?? │?? │?? ├── axi_aw_sequence.sv
    │?? │?? │?? ├── axi_aw_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── axi_aw_env.sv
    │?? │??     ├── axi_aw_sim.lst
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── harness.sv
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     └── sanity_case.sv
    │?? ├── axi_b_utils
    │?? │?? ├── axi_b.cfg
    │?? │?? ├── axi_b_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── axi_b_agent.sv
    │?? │?? │?? ├── axi_b_driver.sv
    │?? │?? │?? ├── axi_b_interface.sv
    │?? │?? │?? ├── axi_b_monitor.sv
    │?? │?? │?? ├── axi_b_ready_drv.sv
    │?? │?? │?? ├── axi_b_scb.sv
    │?? │?? │?? ├── axi_b_sequencer.sv
    │?? │?? │?? ├── axi_b_sequence.sv
    │?? │?? │?? ├── axi_b_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── axi_b_env.sv
    │?? │??     ├── axi_b_sim.lst
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── harness.sv
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     └── sanity_case.sv
    │?? ├── axi_ram_model
    │?? │?? ├── axi_ram_model.lst
    │?? │?? ├── axi_ram_model_seq.sv
    │?? │?? ├── axi_ram_model_sqr.sv
    │?? │?? └── axi_ram_model.sv
    │?? ├── axi_r_utils
    │?? │?? ├── axi_r.cfg
    │?? │?? ├── axi_r_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── axi_r_agent.sv
    │?? │?? │?? ├── axi_r_driver.sv
    │?? │?? │?? ├── axi_r_interface.sv
    │?? │?? │?? ├── axi_r_monitor.sv
    │?? │?? │?? ├── axi_r_ready_drv.sv
    │?? │?? │?? ├── axi_r_scb.sv
    │?? │?? │?? ├── axi_r_sequencer.sv
    │?? │?? │?? ├── axi_r_sequence.sv
    │?? │?? │?? ├── axi_r_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── axi_r_env.sv
    │?? │??     ├── axi_r_sim.lst
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── harness.sv
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     ├── sanity_case.sv
    │?? │??     └── tr_db.log
    │?? ├── axi_w_utils
    │?? │?? ├── axi_w.cfg
    │?? │?? ├── axi_w_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── axi_w_agent.sv
    │?? │?? │?? ├── axi_w_driver.sv
    │?? │?? │?? ├── axi_w_interface.sv
    │?? │?? │?? ├── axi_w_monitor.sv
    │?? │?? │?? ├── axi_w_ready_drv.sv
    │?? │?? │?? ├── axi_w_scb.sv
    │?? │?? │?? ├── axi_w_sequencer.sv
    │?? │?? │?? ├── axi_w_sequence.sv
    │?? │?? │?? ├── axi_w_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── axi_w_env.sv
    │?? │??     ├── axi_w_sim.lst
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── harness.sv
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     └── sanity_case.sv
    │?? ├── cmt_utils
    │?? │?? ├── cmt.cfg
    │?? │?? ├── cmt_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── cmt_agent.sv
    │?? │?? │?? ├── cmt_driver.sv
    │?? │?? │?? ├── cmt_interface.sv
    │?? │?? │?? ├── cmt_monitor.sv
    │?? │?? │?? ├── cmt_ready_drv.sv
    │?? │?? │?? ├── cmt_scb.sv
    │?? │?? │?? ├── cmt_sequencer.sv
    │?? │?? │?? ├── cmt_sequence.sv
    │?? │?? │?? ├── cmt_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── cmt_env.sv
    │?? │??     ├── cmt_sim.lst
    │?? │??     ├── harness.sv
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     └── sanity_case.sv
    │?? ├── inst_utils
    │?? │?? ├── inst.cfg
    │?? │?? ├── inst_utils.lst
    │?? │?? ├── src
    │?? │?? │?? ├── inst_agent.sv
    │?? │?? │?? ├── inst_driver.sv
    │?? │?? │?? ├── inst_interface.sv
    │?? │?? │?? ├── inst_monitor.sv
    │?? │?? │?? ├── inst_ready_drv.sv
    │?? │?? │?? ├── inst_scb.sv
    │?? │?? │?? ├── inst_sequencer.sv
    │?? │?? │?? ├── inst_sequence.sv
    │?? │?? │?? ├── inst_transaction.sv
    │?? │?? │?? └── prj_scoreboard.sv
    │?? │?? └── test
    │?? │??     ├── base_test.sv
    │?? │??     ├── check_fail.pl
    │?? │??     ├── harness.sv
    │?? │??     ├── inst_env.sv
    │?? │??     ├── inst_sim.lst
    │?? │??     ├── Makefile
    │?? │??     ├── run.do
    │?? │??     └── sanity_case.sv
    │?? └── prj_utils
    │??     ├── prj_utils.lst
    │??     └── src
    │??         ├── prj_define.sv
    │??         └── prj_scoreboard.sv
    ├── mvu
    │?? ├── cfg
    │?? │?? ├── cfg.mk
    │?? │?? ├── check_fail.pl
    │?? │?? ├── run.do
    │?? │?? └── tb.f
    │?? ├── cov
    │?? │?? └── mvu_inst_cov.sv
    │?? ├── env
    │?? │?? ├── mvu_env.sv
    │?? │?? └── mvu_rm.sv
    │?? ├── sim
    │?? │?? ├── Makefile
    │?? │?? ├── novas.rc
    │?? │?? └── run_case.sh
    │?? ├── tc
    │?? │?? ├── base_test.sv
    │?? │?? ├── one_inst_case.sv
    │?? │?? ├── random_case.sv
    │?? │?? ├── sanity_case.sv
    │?? │?? ├── small_pkt_case.sv
    │?? │?? └── tc.f
    │?? └── th
    │??     ├── harness.sv
    │??     └── th
    │??         └── harness.sv
    ├── mvu.cfg
    └── mvu_sim_define.sv

这些全部是手撕代码,当然会借助verilog-mode/auto_testbench/gen_uvm_agent/gen_uvm_tb等诸多工具辅助开发,不需要担心。

mvu_prj下预计有五个目录:

  • rtl:用于放置rtl代码,以及rtl filelist,一些模块的ut仿真环境也在这个目录下;
  • ver:验证目录,其中的common为公用组件和utils,mvu为muv模块的仿真环境;
  • script:相关的脚本放置目录;
  • flow:编译、lint、综合的工作目录;
  • lib:综合的库文件目录;

由于目前只完成了代码编写和功能验证,目录内容暂不全面,后面会逐步补全。

文章来源:https://blog.csdn.net/moon9999/article/details/134862969
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。