DC综合的shell命令,在RTL中请谨慎使用

简介: 随着功能复杂度的快速提升,对芯片的要求也是随着提高,所以现在一款芯片的开发,往往需要数十人,长达几个月的共同开发才能完成。

随着功能复杂度的快速提升,对芯片的要求也是随着提高,所以现在一款芯片的开发,往往需要数十人,长达几个月的共同开发才能完成。

因为Verilog HDL的语法相对开放,所以每个人开发的Verilog  HDL之间的差异也是非常的大。但是一个设计团队之间,进行RTL模块的交叉review、相互调用是非常频繁的事情,所以为了增强RTL代码的可移植性,以及review的效率,我们通常在一个项目开始的时候,会统一整理一个RTL编码规则,里面的内容包括,命名的规则、单词的缩略原则,一些标准电路的常用写法等等。往往这个编码规则会写的很具体,但是个人认为,这是非常有必要的。在前面的五篇文章中,我们已经聊了一些,今天的文章,我就继续来聊一聊一般常见的规则。

RTL推荐编码规则

在RTL源代码中禁止使用Design Compiler的综合命令。综合工具有很多种,Design  Compiler只是其中一种,虽然它的市场份额很大,但是并不说100%的占有这个综合工具市场,所以Design  Compiler中的命令并不能被其他综合工具所识别,这样的话,综合结果就变得不可控,因为如果使用其他综合工具,对Design  Compiler的命令,究竟会识别成什么情况,是不能预估的。

另外,即使是一直使用Design   Compiler进行综合,因为有两种综合策略,Top-down和bottom-up,所以当你使用不同的综合策略时候,对不同的综合命令处理方式,也会有很大的不同,所以通过上面的分析,不难看出,综合命令的使用,比较好的方式是放在一个批处理的脚本文件中,进行统一管理,不管是变换约束条件,综合策略还是其他的命令,都可以十分方便的在一个脚本里面进行统一更改。不过在这里有个例外,就是编译开关的打开和关闭命令,这个是可以放到RTL里面。下面我们举两个命令,做简单介绍,后面的文章中,我们将对这两个命令做详细介绍。


translate_off/translate_on,当出现translate_off命令,之后的RTL代码,Design   Compiler将不会再进行编译,直到出现translate_on。这条命令就十分的实用,当我们的RTL里面出现了仅用来进行仿真的RTL时候,就可以使用这两条命令,这条命令简化了RTL在仿真工具和综合工具的移植。

parallel_case/full_case,parallel_case可以让综合工具在综合过程中,使用并行不带优先级的多路现则结构,有利于timing的优化,full_case可以避免锁存器的产生。

小结

RTL的可综合是十分重要的,因为RTL只是中间状态,我们要交付的是网表,所以在RTL编码过程中,我们只有把握好一些编码原则,才能使得综合得到的网表,更加符合我们的预期了。


本文由久芯网www.9icnet.com编辑整理发布,请勿转载

目录
相关文章
|
20天前
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
64 7
|
25天前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
37 1
|
2月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
75 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
2月前
|
Shell 知识图谱
Shell printf 命令
10月更文挑战第3天
23 1
|
2月前
|
Unix Shell Linux
常见的shell命令
shell常用命令
51 11
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
117 5
|
2月前
|
Shell PHP
Shell echo命令
10月更文挑战第3天
23 0
|
2月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
199 0
|
2月前
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
84 0