【VCS】(5)Fast RTL-level Verification

news2024/9/30 17:39:36

Fast RTL-level Verification

  • General Coding Guidlines
  • Lab --- simprofile
  • $display() 输出彩色内容

前面的内容都是在说怎样进行仿真和验证,即如何使用 VCS 。
但是,仿真和验证是不是也有所讲究? 有没有一些标准来衡量设计代码和验证代码的质量?代码写不好导致仿真时间慢、占用资源多?
对于大规模SoC而言,如果代码写的不好的时候,会对仿真的性能影响很大。

为了提升 RTL仿真的性能,可以从两个角度出发:

① 良好的编码风格 (主导)

② 编译的时候,使用+rad选项 (辅助)

此外,就是要合理的控制编译和仿真的开关选项,以及减少重新编译的次数(一次修改尽可能多的源代码问题)。

在这里插入图片描述

General Coding Guidlines

在这里插入图片描述

(这里用不好用行数来限制,反正就是尽可能写的小一些就好。)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(这个好像用的不多)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

+prof统计分析代码各部分内容的的仿真时间和占用的内存大小,可以帮助找出仿真的瓶颈,优化代码。)

在这里插入图片描述
现在的 VCS 使用的统计分析命令是 -simprofile (+prof已经完全不能使用了)

Lab — simprofile

这里还是用了前面使用的 fsm 的例子。

首选需要在Makefile的编译指令中添加 -simprofile选项
在这里插入图片描述

因为该选项是用于大规模设计的仿真的,但是当前的设计规模太小了,可能统计不到内容,所以首先要扩大设计。

① 在testbench中实例化 1000个模块。
在这里插入图片描述在这里插入图片描述

(这里必须使用 genenrate + for 循环来实现,也要用 genvar 来定义变量 index。)

② 对 DPI 也进行适当的修改

在这里插入图片描述
(因为只输出一次的时候,统计不到信息,所以后面就改为10000次,增加 C 程序的执行时间。)

完成上述修改之后,执行编译仿真。

仿真结束之后,增加了如下内容:

在这里插入图片描述

profileReport.txt 的内容如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$display() 输出彩色内容

在这里插入图片描述

在这里插入图片描述

基本语法格式:

$display("\033[31;41m Hello error!\033[0m");

\033 : Esc 键的ACSII 码
[31 : 字体颜色
41 : 底色
除了字体颜色和底色,还可以设置其他参数,如加粗、下划线等。多个参数之间以 ; 隔开
m : 结束表示符,终端以设定的格式输出内容后面的内容
\033[0m : [0m 表示后面的内容以终端默认的方式显示

这个其实是终端的功能,在 display 里面也可以使用。同样的 echo 也可以使用。

在这里插入图片描述
可以看出:
① 不同格式参数之间没有顺序要求,也就是说每一种各种对应了一种代码
\033[30m这个整体是格式化输出的起止标志

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

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

相关文章

面向初学者的APP开发教程:开始你的编程之旅

不管你是已经在 APP开发行业中工作了很长时间,还是正在学习该领域的知识,都有必要开始学习如何编写一个应用程序。对于初学者来说,编写应用程序的第一步是使用 HTML和 CSS构建一个漂亮的UI。 一旦你学会了这些基本技能,你就可以开…

全志F1C200S嵌入式驱动开发(解决spi加载过慢的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 之前的几个章节当中,我们陆续解决了spi-nor驱动的问题、uboot支持spi-nor的问题。按道理来说,下面要做的应该就是用uboot的loady命令把kernel、dtb、rootfs这些文件下载到ddr,然…

【Milvus】记录一次基于milvus-backup做的Milvus备份与恢复

文章目录 环境代码准备备份构建/运行验证 恢复遇到的问题 环境 milvus:v2.2.4 go:1.20.2 darwin/amd64 milvus-backup:v0.2.2 代码准备 https://github.com/zilliztech/milvus-backup/releases 如果你的milvus是2.2.9版本及以上&#xf…

SAP CAP篇十一:支持Media Object:图片、附件等

文章目录 本系列此前的文章官方文档详细修改更新数据库修改Annotation使其显示在Object Page上 运行结果Fiori Object Page上的Attachment Facet选择完文件后的UI效果前台与后台的交互 对应代码及branch 本系列此前的文章 SAP CAP篇一: 快速创建一个Service,基于Ja…

软件测试如何做到充分性测试?

目录 1 提前介入测试 2 测试分析,测试用例设计 3 测试用例评审 4 严格按照测试用例执行测试 5 分解需求 6 交叉测试 7 重点功能要及时跟踪进行测试充分性分析 做软件测试要想保质保量,就要做到测试充分,什么是测试充分,就是…

将数组和减半的最少操作次数(力扣)

将数组和减半的最少操作次数 题目描述思路测试代码复杂度测试结果 题目描述 给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。(注意,在后续操作中你可以对减半过的数继续执行操作&#xf…

(笔记)深度理解-主成分分析PCA

主成分分析 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。…

蛋白质分子结构设计

paper read 1 Created by: 银晗 张 Created time: May 27, 2023 3:47 PM Tags: Product 补充了解蛋白质的生物学知识学习一下Diffusion的原理 💡 Method & Innovations Framework Summary: first deep learning models to perform antibody sequence-stru…

随笔--更改已经启动中的容器的配置文件

文章目录 docker 容器的配置信息地址修改文件映射 docker 容器的配置信息地址 # 一般在 sudo su cd /cd /var/lib/docker/containers/{容器id}/ # 查看容器的id,CONTAINER ID就是容器id的前部分 docker ps修改文件映射 进入容器的配置文件位置一般包含这些文件 # 先stop容器…

0基础学习VR全景平台篇 第69篇:VR直播-如何设置广告

直播间可以插入轮播广告,并且支持外链跳转,能够有效地提升VR直播活动的转化率。 1、点击,添加广告 2、广告图展现形式分为两种:普通广告和全屏广告,普通广告在非全屏播放的直播间显示,全屏广告在全屏播放的…

特征选择策略:为检测乳腺癌生物标志物寻找新出口

内容一览:microRNA(小分子核糖核酸)是一类短小的单链非编码 RNA 转录体。这些分子在多种恶性肿瘤中呈现失控性生长,因此近年来被诸多研究确定为确诊癌症的可靠的生物标志物 (biomarker)。在多种病理分析中,差异表达分析…

在 “小小容器” WasmEdge 里运行小小羊驼 llama 2

昨天,特斯拉前 AI 总监、OpenAI 联合创始人 Andrej Karpathy 开源了 llama2.c 。 只用 500 行纯 C 语言就能训练和推理 llama 2 模型的框架,没有任何繁杂的 python 依赖。这个项目一推出就受到大家的追捧,24 小时内 GitHub 收获 4000 颗星&am…

AI学习笔记三:编写检测的yolov5测试代码

若该文为原创文章,转载请注明原文出处。 通过detect.py代码测试通过后,阅读detect.py代码发现,有些难以看懂,看得有点蒙蒙的, 所以编写了一个简单的测试程序。 代码如下: import cv2 import numpy as np…

工业自动化编程与数字图像处理技术

编程是计算机领域的基础技能,对于从事软件开发和工程的人来说至关重要。在工业自动化领域,C/C仍然是主流的编程语言,特别是用于工业界面(GUI)编程。工业界面是供车间操作员使用的,使用诸如Halcon或OpenCV等软件单独无法完成项目&a…

mysql 第八章

1.主从复制 主服务器: 从服务器: 检测结果: 2.读写分离 amoeba 机器: 客户端机器: 检测结果: 3.总结 在企业应用中,业务通常数据量都比较大。单台 mysql 在安全性、 高可用性、高并发方面都&am…

走好职业生涯第一步 中科驭数2023校招生培训“芯星计划” 落幕

校招生作为公司发展的新鲜血液,是公司在人才储备和人才梯队建设上的重要投资。近日,中科驭数在北京、武汉两地组织开展了2023年校招生培训项目——“芯星计划”,旨在帮助2023届校招新员工快速了解公司文化、融入驭数团队,顺利迈过…

字节抖音小程序,使用 uniapp 调起内置支付

字节抖音小程序,使用 uniapp 调起内置支付 第一步:提交订单 后端通过抖音预下单接口,提交支付订单信息。 预下单接口_小程序_抖音开放平台预下单接口 提交支付订单信息。 ## 使用限制 无 ## 接口说明 预下单接口需要保证同一app_id下每笔订…

中国剩余定理讲解及例题

凡有所学&#xff0c;皆成性格。 凡有所学&#xff0c;皆成性格。 目录&#x1f352; &#x1f349;中国剩余定理维基百科<font colorgreen>:cherries:形式描述&#xff1a; <font colorred>:pear: 解法:strawberry:<font colorgreen>求解方法&#xff1a;:…

集成学习——Bagging算法和随机森林算法

1、集成学习 集成学习是将多个机器学习的算法结合起来的一种方法&#xff0c;即实现将多个弱学习器通过组成一个整体来实现强学习的效果&#xff0c;俗语里&#xff1a;三个臭皮匠赛过一个诸葛亮。 2、Bagging算法 2.1 Bootstrap自助采样 在样本集D(样本数为m)中进行有放回…

51单片机--LCD1602

LCD1602的介绍 LCD1602是一种字符型液晶显示模块&#xff0c;通常用于嵌入式系统、单片机等领域。它由LCD&#xff08;液晶显示屏&#xff09;、HD44780控制驱动主电路及其扩展驱动电路、少量电阻、电容元件等组成。 LCD1602具有以下特点和功能&#xff1a; 显示能力&#xf…