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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈CompletableFuture

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 回顾FutureTask 之前我…

安全高效 江西变电站成功应用国家电网无人机巡检

随着电力需求的迅速增长,电网的巡检、维护与保养变得越来越重要。为迎接这一挑战,江西供电公司的一座变电站成功引入了复亚智能国家电网无人机巡检系统,在提升巡检水平、开创新型巡检模式方面做出了重要尝试,为电网设备的高效巡检…

EDA 数字时钟

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数字时钟是什么?二、EDA里面数码管的显示1.元件模型2.参考程序3. 实验仿真波形4.实验现象5. 仿真问题 三、显示时钟1. 时钟电路模块2.参考程序3…

gRPC .net学习

学习helloworld server用.net client有.net的控制台 和 unity server端 直接使用vs2022创建(需自行看有无装asp.net哦),搜索gPRC,使用6.0吧,创建工程后直接F5跑起来,服务端到此完成 .net控制台client,创建新的控制台,使用NuGet,然后导入server端的Protos文件夹 学…

基于Jedis来探讨池化技术

为什么需要池化技术 系统运行时必然是需要数据库连接、线程等一些重量级对象,频繁的创建这种对象对性能有着不小的开销,所以为了减少没必要的创建和开销,我们就用到了池化技术。 通过创建一个资源池来保存这些资源便于后续的复用&#xff0c…

【C++初阶】七、内存管理(C/C++内存分布、C++内存管理方式、operator new / delete 函数、定位new表达式)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【C初阶】六、类和对象(初始化列表、static成员、友元、内部类)-CSDN博客 目录 一 . C/C内存分布 C/C中程序内存区域划分: 二 . C内存管理方式 …

16.Java程序设计-基于SSM框架的android餐厅在线点单系统App设计与实现

摘要: 本研究旨在设计并实现一款基于SSM框架的Android餐厅在线点单系统,致力于提升餐厅点餐流程的效率和用户体验。通过整合Android移动应用和SSM框架的优势,该系统涵盖了用户管理、菜单浏览与点单、订单管理、支付与结算等多个功能模块&…

用户登录权限

文章目录 [TOC](文章目录) 前言一、 Cookie与session1.HTTP无状态2.cookie 和 session 的生命周期2.1 cookie 生命周期影响因素2.2 session 生命周期影响因素 3.cookie 和 session 的区别4.工作原理3 用户登录Node.js和Express验证session 二、JSON Web Token1. JWT 介绍2. JWT…

C#使用Matrix类对Dicom图像的放缩

C#使用Matrix类对Dicom图像的放缩,使用Matrix 1.同时操作水平、垂直同时放缩 // 创建一个 Matrix 对象 Matrix m_Matrix new Matrix();//放缩参数 float inputZoom1.2f; m_Matrix.Scale(inputZoom, inputZoom, MatrixOrder.Append); 2.操作水平(X轴…

前端使用插件预览pdf、docx、xlsx、pptx格式文件

PDF预览 H5页面pdf预览 插件:pdfh5 版本:“pdfh5”: “^1.4.7” npm install pdfh5 import PdfH5 from "pdfh5"; import "pdfh5/css/pdfh5.css";// methods this.$nextTick(() > {this.pdfH5 new PdfH5("#pdf", {pd…

【算法系列篇】递归、搜索和回溯(二)

文章目录 前言1. 两两交换链表中的节点1.1 题目要求1.2 做题思路1.3 代码实现 2. Pow(X,N)2.1 题目要求2.2 做题思路2.3 代码实现 3. 计算布尔二叉树的值3.1 题目要求3.2 做题思路3.3 代码实现 4. 求根节点到叶结点数字之和4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面为大…

计算机毕业设计springboot+ssm停车场车位预约系统java

管理员不可以注册账号 停车位包括车位所在楼层、车位编号、车位类型(全时间开放/高峰期开放)、预定状态等 用户预约时要求支付预约时间段的停车费用 违规行为:1.停车超过预约时间段 2.预约未使用 于系统的基本要求 (1)功能要求&am…

6G来袭,真的有必要吗?

6G来袭,6G标准将在2025年完成制定,2030年商用。当5G都还没玩明白的时候,6G又来了。 这次6G又提出了三个全新高大上场景,感知通信、人工智能通信、天地一体泛在物联,精英们还说,未来要连接很多机器人、元宇宙…

PHP基础 - 循环与条件语句

循环语句 1)for循环: 重复执行一个代码块指定的次数。 for ($i = 0; $i < 5; $i++) { // 初始化 $i 为 0,每次循环后将 $i 值增加 1,当 $i 小于 5 时执行循环echo "The number is: $i \n"; // 输出当前 $i 的值并换行 }// 循环输出结果为: // The number …

mysql字段设计规范:使用unsigned(无符号的)存储非负值

如果一个字段存储的是数值&#xff0c;并且是非负数&#xff0c;要设置为unsigned&#xff08;无符号的&#xff09;。 例如&#xff1a; 备注&#xff1a;对于类型是 FLOAT、 DOUBLE和 DECIMAL的&#xff0c;UNSIGNED属性已经废弃了&#xff0c;可能在mysql的未来某个版本去…

mysql分别在windows和linux下的备份策略

嗟乎&#xff01; 一、概述 mysql数据库该怎么备份呢&#xff1f; 数据库备份有几个概念&#xff1a;全量备份、增量备份、差异备份。当然啦&#xff0c;数据库备份又有冷备份和热备份&#xff0c;即物理备份和逻辑备份之分。冷备份就是将mysql停了&#xff0c;然后直接拷贝…

Python入门第2篇

pip包管理器 包管理器类似.NET下的nuget&#xff0c;主要用于管理引用依赖项。 安装Python的时候&#xff0c;已经默认安装了pip包管理器&#xff0c;因此无需单独安装 cmd&#xff0c;输入&#xff1a;pip --version 显示pip版本号信息&#xff0c;即代表pip安装成功&…

前端知识笔记(四十二)———http和https详细解析

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在计算机网络中传输超文本的协议。它是一个客户端-服务器协议&#xff0c;用于从 Web 服务器传输超文本到本地浏览器。HTTP 使用 TCP/IP 协议作为底层传输协议&#xff0c;并使用默认端口号80。 HTTPS&…

8-tornado中模板的使用(通过字符串返回、通过模板Template返回、通过模板render返回)、模板案例

1 Template 1.1 通过字符串返回 import tornado class IndexHandler(web.RequestHandler):def get(self):arg Templateself.finish(f<h1>Hello {arg}!!</h1>)1.2 通过模板Template返回 tornado.template 一个简单的模板系统&#xff0c;将模板编译为Python代码。…

c 一,二,三维数组的定义和赋值

1. 定义数组必须指定数组的大小&#xff0c;也就是用多少存储空间来存储此数组 2.定义数组必须用数组的标准格式定义&#xff1a;数组名下标的形式 3.只有字符串可以用指针来定义 4.可以把c 中一切数和struct 理解为char 数组 比如int 就是4字节的char数组 #include <…