02-RTL代码分析思路
RTL代码分析思路(这里不进行具体代码的分析)
verilog文件是以.v结尾的
1 RTL代码示例
//Date : 2023-01-09
//E-mail : xxxxxx@163.com
//copyright : xxxx
//-------------------------------------------------------------------------------
//module header may includes:
//module name,port,direction,port width and port types
module AndOr {
output X,Y,
input A,B,C
};
assign #10 X = A & B;
assign #10 Y = B | C;
endmodule
- RTL中有内建的and or 一般写& |
2 使用Makefile进行仿真
Makefile是一个脚本,简单理解为将仿真使用的命令放到脚本中,方便执行
all:compile simulate
compile:
vcs -sverilog -debug_all -timescale=1np/1ps full_adder.v full_adder_tb.v -l com.lg
simulate:
.simv -l sim.log
clean:
@rm -rf csrc DVEfiles simv simv.daidir ucli.key VCS*
@rm -rf *.log *.vpd *.svf *.SDF *Synth *Netlist*
@rm -rf alib-52
make all就会执行all下面的complie和simulate
生成sim.og文件
使用 dve查看波形文件
// & 后台运行dve
dve &
设计人员也需要会部分验证
3 进行逻辑综合
3.1 tcl脚本的方式进行逻辑综合
//在linux中使用脚本进行综合
dc_shell -f xxx.tcl
//自动调用design compiler进行综合
- 延时信息--#5 是不可综合的
3.2 使用GUI界面方式进行逻辑综合
//调出design compiler的界面工具
design_vision &
详细的过程不在这里进行详细叙述
通过逻辑综合可以看到RTL变成的具体电路
4 一些问题:
- 设计人员需要掌握verilog的testbench,掌握初级的验证
- VCS使用的比较多,使用不同的仿真工具只需要改变工具
- 正常开发的时候通常使用脚本的方式进行仿真和综合,公司中的脚本设计比较完善,就可以直接跑
- 脚本虽好,但是仍然需要进行了解其中的原理
- verdi优点,大型芯片的效率比较高
- 前端设计人员Coding能力和Debug能力,工具使用比较简单
- RTL code在release之前需要进行检查
- 芯片设计人员需要掌握常用的EDA工具
02-RTL代码分析思路的更多相关文章
- 20155301 Exp4 恶意代码分析
20155301 Exp4 恶意代码分析 实践目标 (1) 是监控你自己系统的运行状态,看有没有可疑的程序在运行. (2) 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用 ...
- .NET Core技术研究-通过Roslyn代码分析技术规范提升代码质量
随着团队越来越多,越来越大,需求更迭越来越快,每天提交的代码变更由原先的2位数,暴涨到3位数,每天几百次代码Check In,补丁提交,大量的代码审查消耗了大量的资源投入. 如何确保提交代码的质量和提 ...
- 贪吃蛇的java代码分析(三)
代码剖析 在上一篇文章中,我们完成了贪吃蛇部分代码的构造.回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动.想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- angular代码分析之异常日志设计
angular代码分析之异常日志设计 错误异常是面向对象开发中的记录提示程序执行问题的一种重要机制,在程序执行发生问题的条件下,异常会在中断程序执行,同时会沿着代码的执行路径一步一步的向上抛出异常,最 ...
- Linux内核中的GPIO系统之(3):pin controller driver代码分析
一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datash ...
- MTK6589下传感器框架结构和代码分析以及传感器的参数指标
MTK6589下传感器框架结构和代码分析以及传感器的参数指标 作者:韩炜彬 中国当代著名嵌入式研究专家 一. 模块框架 1)配置 路径:Alps/mediatek/config/$(pro ...
- Linux时间子系统之(十七):ARM generic timer驱动代码分析
专题文档汇总目录 Notes:ARM平台Clock/Timer架构:System counter.Timer以及两者之间关系:Per cpu timer通过CP15访问,System counter通 ...
- 20165223《网络对抗技术》Exp4 恶意代码分析
目录 -- 恶意代码分析 恶意代码分析说明 实验任务目标 实验内容概述 schtasks命令使用 实验内容 系统运行监控 恶意软件分析 静态分析 virscan分析和VirusTotal分析 PEiD ...
- Exp4 恶意代码分析
一.原理与实践说明 1. 实践目标 1.1 监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysin ...
随机推荐
- 齐博x1文本代码标签的使用
文本标签虽然简单,但是使用的地方确实非常多的. {qb:tag name="XXXX" type="text"}推荐新闻{/qb:tag} 类似这种使用的频率是 ...
- 8.DRF请求响应和api_view
一.请求对象(Request objects) DRF引入了一个扩展Django常规HttpRequest对象的Request对象,并提供了更灵活的请求解析能力 Request对象的核心功能是re ...
- MySQL 索引失效-模糊查询,最左匹配原则,OR条件等。
索引失效 介绍 索引失效就是我们明明在查询时的条件为索引列(包括自己新建的索引),但是索引不能起效,走的是全表扫描.explain 后可查看type=ALL. 这是为什么呢? 首先介绍有以下几种情况索 ...
- SpringBoot自定义注解+异步+观察者模式实现业务日志保存
一.前言 我们在企业级的开发中,必不可少的是对日志的记录,实现有很多种方式,常见的就是基于AOP+注解进行保存,但是考虑到程序的流畅和效率,我们可以使用异步进行保存,小编最近在spring和sprin ...
- .NET 零开销抽象指南
背景 2008 年前后的 Midori 项目试图构建一个以 .NET 为用户态基础的操作系统,在这个项目中有很多让 CLR 以及 C# 的类型系统向着适合系统编程的方向改进的探索,虽然项目最终没有面世 ...
- Sqlite 安装操作使用
一.什么是 SQLite 数据库 SQLite 是嵌入式SQL数据库引擎.与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程.SQLite 直接读取和写入普通磁盘文件.具有多个表,索 ...
- [leetcode] 706. Design HashMap
题目 Design a HashMap without using any built-in hash table libraries. Implement the MyHashMap class: ...
- perl静态变量
state操作符功能类似于C里面的static修饰符,state关键字将局部变量变得持久. state也是词法变量,所以只在定义该变量的词法作用域中有效,举个例子: #!/usr/bin/perl u ...
- 开发用户K8S授权
#开发用户没有K8S权限 [ans@master ~]$ kubectl get po Unable to connect to the server: x509: certificate signe ...
- 2022春每日一题:Day 25
题目:青蛙的约会 读完题,显然可以的到下同余方程:x+mk≡y+nk (mod L) 移项变成 (m-n)k+aL=y-x 只有k,L是未知的,而这题要求非负整数k的最小值,显然拓展欧几里得算法. 然 ...