【IC前端虚拟项目】工程目录组织说明
2023-12-13 04:50:50
文档目录在“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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!