HDL编码风格之VHDL指导原则

上传人:ll****x 文档编号:243021811 上传时间:2024-09-14 格式:PPT 页数:33 大小:106.50KB
返回 下载 相关 举报
HDL编码风格之VHDL指导原则_第1页
第1页 / 共33页
HDL编码风格之VHDL指导原则_第2页
第2页 / 共33页
HDL编码风格之VHDL指导原则_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,HDL,编码风格,/VHDL,指导原则,1,内容,HDL,编码风格,VHDL,指导原则,2,HDL,编码风格,文件头和修订列表,联机注释,命名规则,3,文件头,模块名,文件名,需要的库,模块描述,使用的仿真器及器运行平台和版本,使用的综合工具及其运行平台和版本,作者名字和,e-mail,4,文件头例子,-,- Module : MAC (Multiply Accumulate Unit),- File : mac.vhd,- Library : ieee,.,- Description : It is a general Purpose Multiply - Accumulate Unit capable of,- Simulator : Modelsim 5.2 / Windows 95,- Synthesizer : Synplify / Windows95,- Author / Designer : Harish Y S (),-,5,修订列表,修订版本号,改动的数据,修订者名字和,e-mail,改动的详细描述,6,修订列表例子,-,- Revision Number : 1,- Date of Change : 20th March 2000,- Modifier : Harish Y S (),- Description : Initial Design,-,- Revision Number : 2,- Date of Change : dd mm yyyy,- Modifier : XYZ (email),- Description : Modified the ?.to improve ?.,-,7,文件头标准模式,-,- Title :,- Project :,-,- File :,- Author : name ,- Organization:,- Created :,- Last update :,- Platform :,- Simulators :,- Synthesizers:,- Targets :,- Dependency :,-,- Description:,-,- Copyright (c) notice,-,- Revisions :,- Revision Number :,- Version :,- Date :,- Modifier : name ,- Description :,-,8,联机注释,每一个重要的操作和定义后都要加注释,描述操作和声明的使用,9,注释注意事项,不要去注释明明白白的事,不要让注释干扰读者,不要与代码矛盾,Entity (.) -,实体声明,IF() .,- .,THEN .,- .,语句,IF(!reset) reset,高电平有效,.,10,命名规则,实体和结构,端口,结构体,元件,配置,包,/,函数和过程,常量和类属说明,枚举,信号和变量,进程和块,TestBench,11,实体和结构,规则:,实体名要确切描述其功能;,实体名只能用小写字母,不超过,10,个字符;,推荐:,每个实体最好有一个,3-4,个字母的缩略名,可以将其应用在其内部的构造模块和信号名中。,12,端口,规则:,端口名应和信号相对应,以大写字母开头;,若端口是标准设备可包含标准名,不超过,15,个字符,端口声明后要有详细注释。,13,结构体,规则:,构造体名可用“,behavioral”,表示行为描述,“,structural”,表示结构描述,“,RTL”,表示寄存器描述等;,由综合出来的结构体要有“,_syn”,后缀,并且在开始和结束出要注明采用的技术;,在“,ARCHITECTURE”,语句前要有一行注释,说明其功能,并说明是否可综合,或仅可仿真。,推荐:,当一个设计中包含多个文件时,通过加“,_arch”,后缀来加以区分。,14,元件,规则:,其名称以包或实体的缩略名作开头;,可取有实际意义的单词,大小写可混用,最好不要超过,8,个字符。,15,配置,规则:,配置名中要包含顶层设计名;,以大写字母开头,不超过,15,个字符。,推荐:加“,_cfg”,后缀区分多个文件。,16,包,规则:,包中要包含系统所需定义的所有常量,数据类型,模块,过程和函数;,包名以大写字母开头,不超过,15,个字符。,推荐:,加“,_pkg”,后缀区分多个文件,为包定义一个,3-4,个字符的缩略名,加在其中的常量,过程和函数名中,用以区分不同包中的内容。,17,函数和过程,规则:,以大写字母开头,不超过,10,个字母;,要体现其功能,用前缀“,l_”,表示局部变量;,局部信号应有其特征域。,推荐:,加入包的缩略名于其中。,18,常量和类属说明,规则:,用大写字母,要明确描述常量的用法。,推荐:,加入包的缩略名于其中。,19,枚举,/,数据类型,/,记录和数组,规则:,用大写字母,新数据类型要加后缀“,_typ”,。,20,信号,规则:,第一个符号必须是字母,信号名要描述其功能,不超过,15,个字符;,头三个字母要显示说明驱动模块的类型,要把其驱动实体,模块或进程缩略名加在前面:如控制单元,“ctl”,,算术逻辑运算单元,“alu”,,乘法器,“mac”,,数据地址发生器,“dag”,;,如果信号只是在仅有时钟的进程中获得其值的,则加“,_q”,,若是总线则加“,_reg”,信号定义语句后要有一行注释描述其功能;,信号名要表明信号的极性:高电平有效,/,正逻辑(,P,),低电平有效,/,负逻辑(,N,),全局信号“,G”,,局部信号“,L”,;,若是三态信号,加,Z,;,后续字符要说明信号的内容。,21,变量,规则:,要简单并能描述其功能;,可包含各种格式的字母、数字和下划线;,要确切的表示其行为。,22,进程,规则:,所有进程必须有进程名,用以描述其功能;,注释要包含以下内容:组合、时序进程,,组合进程要定义所有敏感信号,时序进程要定义时钟和其边沿(上升沿或下降沿),时序进程还要定义复位信号,如果有的话,其有效与否与时钟有关。,23,Test Bench,规则:,其名称要与实体名一致,且加后缀“,_TB”,;,结构体、进程、变量和信号同样遵循上述规则;,内存组织和仿真生成由过程和函数来实现;,出错报告要提供下述信息:实体或模块名,信号或变量名,过程或函数名,当前时间点,错误号或错误名,可能的出错原因,出错位置;,24,VHDL,代码指导原则,一般规则,可综合编码,以仿真和调试为目的的编码,25,一般规则,外部端口用,std_logic,类型;,不要赋未知值“,x”,或检查验证无效的“,-”,;,这些值在仿真和综合时会产生不可预测的行为。,不要使用信号和变量的默认值(或初始值),用复位脉冲初始化信号和变量。,会在仿真和综合时出现不匹配。,26,一般规则,(,续,),在整个,VHDL,工程中不要混用编码准则,(,i.e. VHDL 87 and VHDL 93,);,尽量在一个,VHDL,文件中做一个设计,文件名要和结构名一致;,尽量在模块例化中使用名称符号,不要用位置符号;,有利于调试和增加代码的易读性。,27,一般规则,(,续,2),在不同的层级上使用统一的信号名;,容易跟踪信号,网表调试也容易。,尽量用配置映射实体、结构体和模块;,改变不同的结构体只要简单改动一个文件就可以了,这在仿真上很有用,能从高层上改变低层结构体。,尽量在分开的库中编译每个块;,使用常量和类属说明定义缓冲大小,总线宽度和其它单元参数。,这可增强可读性和代码复用性。,28,一般规则,(,续,3),在一个最小化的包中定义模块和常量。,不要在代码中使用,buffer,类型的端口读取输出数据;要使用,out,类型,再增加另外变量或信号,以获取输出值。,这是因为,buffer,类型的端口不能连接到其他类型的端口上,因此,buffer,类型就会在整个设计的端口中传播下去。,29,可综合代码,尽量使用,FSM,,一个在时序逻辑中,一个在组合逻辑中。,这可增加可读性和预测组合逻辑的大小,尽量在一个单独的时钟进程中写时钟使能,而不要在两个不同的进程中使用,一个是时钟驱动的,一个是组合逻辑。,这是因为有些综合工具检查,CE,操作,若存在,就将其映射到触发器的,CE,端,否则,,CE,管脚不被使用,隐含使用外部逻辑。这是,fpga,设计的一般习惯。,30,可综合代码,(2),在组合逻辑进程中,其敏感向量表中要包含所有要读取得信号;,这是为了防止出现不必要的锁存器。,避免使用长的,if-then-else,语句,而使用,case,语句来代替;,防止出现较大的优先编码器,使得代码比较容易读懂。,31,以仿真和调试为目的的编码,尽量使用两部分的,test bench,一部分作为数据产生和检验,另一部分作为时序总线接口协议的产生和检验,这是为了从总线握手中分离数据(结果检验),为了使操作简单,改变总线握手协议而同时保持内部逻辑不变。,32,参考资料,HDL,编码风格和编码指南 徐欣,/,孙广富,33,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!