当前位置: 首页 > news >正文

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

【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:综合的库文件目录;

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

相关文章:

  • ospf选路
  • git 常用部分方法
  • node.js出现version `GLIBC_2.27‘ not found的解决方案
  • Java 使用html2image将html生成缩略图图片
  • Liunx Centos 防火墙操作
  • ingress介绍和ingress通过LoadBalancer暴露服务配置
  • 第一百九十三回 滚动布局的使用示例
  • HTTP、HTTPS、SSL协议以及报文讲解
  • GO设计模式——13、享元模式(结构型)
  • MAC PHP版本安装问题
  • MySQL数据库从小白到入门(二)
  • 2023年5个自动化EDA库推荐
  • Elasticsearch 8.9 flush刷新缓存中的数据到磁盘源码
  • Unity 状态系统
  • 题目:纪念品分组(蓝桥OJ 532)
  • 【Leetcode】101. 对称二叉树
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【391天】每日项目总结系列128(2018.03.03)
  • Android 架构优化~MVP 架构改造
  • ERLANG 网工修炼笔记 ---- UDP
  • ES6简单总结(搭配简单的讲解和小案例)
  • Fundebug计费标准解释:事件数是如何定义的?
  • Javascript弹出层-初探
  • Joomla 2.x, 3.x useful code cheatsheet
  • Less 日常用法
  • magento2项目上线注意事项
  • MySQL几个简单SQL的优化
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • python 装饰器(一)
  • scala基础语法(二)
  • 排序(1):冒泡排序
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 移动端 h5开发相关内容总结(三)
  • #ifdef 的技巧用法
  • #include<初见C语言之指针(5)>
  • (175)FPGA门控时钟技术
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (十五)使用Nexus创建Maven私服
  • (转)EXC_BREAKPOINT僵尸错误
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .Net 4.0并行库实用性演练
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net 获取url的方法
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .Net6使用WebSocket与前端进行通信
  • .net的socket示例
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /etc/fstab和/etc/mtab的区别
  • @font-face 用字体画图标