数字设计之asic流

数字设计之asic流

ID:15257390

大小:3.01 MB

页数:41页

时间:2018-08-02

数字设计之asic流_第1页
数字设计之asic流_第2页
数字设计之asic流_第3页
数字设计之asic流_第4页
数字设计之asic流_第5页
资源描述:

《数字设计之asic流》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字设计流程第一步、前端功能代码设计:良好的代码风格可以在满足功能和性能目标的前提下,增强代码的可读性、可移植性,首要的工作是在项目开发之前为整个设计团队建立一个命名约定和缩略语清单,以文档的形式记录下来,并要求每位设计人员在代码编写过程中都要严格遵守。所以,在设计之前要按照顶层模块的输入INPUT、输出OUTPUT以及顶层模块内部所调用到的线网wire、reg进行说明,同时要画出顶层模块的内部结构图,便于定义顶层模块所调用到的单元之间的连接端口关系。良好代码编写风格的通则概括如下:(1)对所有的信号名、变量名和端口名都用小写,这样做是为了和业界的习惯保持一致;对常量名和用户定义

2、的类型用大写;(2)使用有意义的信号名、端口名、函数名和参数名;(3)信号名长度不要太长;(4)对于时钟信号使用clk作为信号名,如果设计中存在多个时钟,使用clk作为时钟信号的前缀;(5)对来自同一驱动源的信号在不同的子模块中采用相同的名字,这要求在芯片总体设计时就定义好顶层子模块间连线的名字,端口和连接端口的信号尽可能采用相同的名字;(6)对于低电平有效的信号,应该以一个下划线跟一个小写字母b或n表示。注意在同一个设计中要使用同一个小写字母表示低电平有效;我习惯使用n来表示。(7)对于复位信号使用rst作为信号名,如果复位信号是低电平有效,建议使用rst_n;注意做异步复位的

3、同步化;一般在使用的时候为了避免异步复位的毛刺对芯片的工作产生影响,都把异步复位用在上电启动的复位过程中,在芯片上电后就不再使用异步复位而改用同步复位,牺牲一个周期的复位等待时间来得到不会受到复位毛刺影响的电路性能;(8)当描述多比特总线时,使用一致的定义顺序,对于verilog建议采用bus_signal[x:0]的表示;(9)尽量遵循业界已经习惯的一些约定。如*_r表示寄存器输出,*_a表示异步信号,*_pn表示多周期路径第n个周期使用的信号,*_nxt表示锁存前的信号,*_z表示三态信号等;(10)在源文件、批处理文件的开始应该包含一个文件头、文件头一般包含的内容如下例所示

4、:文件名,作者,模块的实现功能概述和关键特性描述,文件创建和修改的记录,包括修改时间,修改的内容等;(11)使用适当的注释来解释所有的always进程、函数、端口定义、信号含义、变量含义或信号组、变量组的意义等。注释应该放在它所注释的代码附近,要求简明扼要,只要足够说明设计意图即可,避免过于复杂;(12)每一行语句独立成行。尽管VHDL和Verilog都允许一行可以写多个语句,但是每个语句独立成行可以增加可读性和可维护性。同时保持每行小于或等于72个字符,这样做都是为了提高代码得可读性;(13)建议采用缩进提高续行和嵌套语句得可读性。缩进一般采用两个空格,如果空格太多则在深层嵌套

5、时限制行长。同时缩进避免使用TAB键,这样可以避免不同机器TAB键得设置不同限制代码得可移植能力;(14)在RTL源码的设计中任何元素包括端口、信号、变量、函数、任务、模块等的命名都不能取Verilog和VHDL语言的关键字;(15)在进行模块的端口申明时,每行只申明一个端口,并建议采用以下顺序:输入信号的clk、rst、enablesothercontrolsignals、dataandaddresssignals。然后再申明输出信号的clk、rst、enalbesothercontrolsignals、datasignals;(16)在例化模块时,使用名字相关的显式映射而不要

6、采用位置相关的映射,这样可以提高代码的可读性和方便debug连线错误;(17)如果同一段代码需要重复多次,尽可能使用函数,如果有可能,可以将函数通用化,以使得它可以复用。注意,内部函数的定义一般要添加注释,这样可以提高代码的可读性;(18)尽可能使用循环语句和寄存器组来提高源代码的可读性,这样可以有效地减少代码行数;(19)对一些重要的always语句块定义一个有意义的标号,这样有助于调试。注意标号名不要与信号名、变量名重复;(20)代码编写时的数据类型只使用IEEE定义的标准类型,在VHDL语言中,设计者可以定义新的类型和子类型,但是所有这些都必须基于IEEE的标准;(21)在

7、设计中不要直接使用数字,作为例外,可以使用0和1。建议采用参数定义代替直接的数字。同时,在定义常量时,如果一个常量依赖于另一个常量,建议在定义该常量时用表达式表示出这种关系;(22)不要在源代码中使用嵌入式的dc_shell综合命令。这是因为其他的综合工具并不认得这些隐含命令,从而导致错误的或较差的综合结果。即使使用DesignCompiler,当综合策略改变时,嵌入式的综合命令也不如放到批处理综合文件中更易于维护。这个规则有一个例外的综合命令,即编译开关的打开和关闭可以嵌入到代

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。