⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hdl编码风格与编码指南.txt

📁 大家好没办法还是那句话 我现在用maxplus2有高手跟我联系请上qq94229631 手机13788910703上海的我姓曹
💻 TXT
📖 第 1 页 / 共 2 页
字号:
HDL编码风格与编码指南 
  HDL编码风格与编码指南 


  作者:徐欣 博士 孙广富 博士
  原文出自e元素科技网站

  Rev. 0.1 
  June 30,2002


  第一部分:说明 
   
  1.准则的重要程度分三个层次:
  好的经验 -- 表明这条规则是一般情况下比较好的经验,在大多数的情况下
  要遵循,在特殊情况下可以突破这一规则。
  推荐 -- 推荐这一规则,在遵循这一规则的条件下,一般不会出现问题;
  强烈推荐 -- 表示严格规定,除非出现特别特殊的情况,否则要严格遵守。 
  2.斜体部分一般表明不按照规则执行,会出现的问题和现象,或一些相关注释。 
  3.版本及修订工作 
  姓名 徐欣,孙广富
  修订 规范的最初发布
  日期 2002-6-30
  联系方式 Dr.xuxin@163.net




  第二部分:HDL编码风格
   
  1. 文件头和修订列表
  作为好的源代码,其中必须包含所有需要的信息。因此源代码中要
  包含文件头和修订列表(以获得修改情况)。
  1.1 文件头包含以下内容:
  ·模块名
  ·文件名
  ·需要的库
  ·模块描述
  ·使用的仿真器--其运行平台和版本
  ·使用的综合工具,其运行平台和版本
  ·作者名字和e-mail
  1.2 修订列表包含以下内容:
  ·修订版本号
  ·改动的数据
  ·修订者名字和e-mail
  ·改动的详细描述
  下面是一个例子:
  Example Header
  -------------------------------------------------------------------------------------------
  -- 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 (harish@opencores.org)
  -------------------------------------------------------------------------------------------
  Example Revision List
  -------------------------------------------------------------------------------------------
  -- Revision Number : 1
  -- Date of Change : 20th March 2000
  -- Modifier : Harish Y S (harish@opencores.org)
  -- Description : Initial Design
  -------------------------------------------------------------------------------------------
  -- Revision Number : 2
  -- Date of Change : dd mm yyyy
  -- Modifier : XYZ (email)
  -- Description : Modified the ????.to improve ????..
  -------------------------------------------------------------------------------------------
  文件头的标准模式:
  -------------------------------------------------------------------------------
  -- Title :
  -- Project :
  -------------------------------------------------------------------------------
  -- File :
  -- Author : name <email>
  -- Organization:
  -- Created :
  -- Last update :
  -- Platform :
  -- Simulators :
  -- Synthesizers:
  -- Targets :
  -- Dependency :
  -------------------------------------------------------------------------------
  -- Description:
  -------------------------------------------------------------------------------
  -- Copyright (c) notice
  -------------------------------------------------------------------------------
  -- Revisions :
  -- Revision Number :
  -- Version :
  -- Date :
  -- Modifier : name <email>
  -- Desccription :
  ------------------------------------------------------------------------------
  2.联机注释
  每一个重要的操作和定义后都要加上注释,描述操作和声明的使用。
   
  3.命名规则
   
  3.1 实体和结构
  规则:
  ·实体名要确切描述其功能;
  ·实体名只能用小写字母,不超过10个字符;
  推荐:每个实体最好有一个3-4个字母的缩略名,可以将其应用在其内部的
  构造模块(component)和信号名中。
   
  3.2 端口
  规则:
  ·端口名应和信号相对应,以大写字母开头;
  ·若端口是标准设备,可包含标准名,不超过15个字符;
  ·端口声明后要有详细注释。
   
  3.3 结构体
  结构体定义系统行为,可从不同方面对其进行描述,结构体和实体是
  一致的,其名字要表明系统描述的方法。
  规则:
  ·构造体名可用“behavioural”表示行为描述,“structural”表示
  结构描述,“RTL”表示寄存器描述等;
  ·由综合出来的结构体要有“_syn”后缀,并且在开始和结束出
  要注明采用的技术;
  ·在“ARCHITECTURE”语句前要有一行注释,说明其功能,
  并说明是否可综合,或仅可仿真。
  推荐:当一个设计中包含多个文件时,通过加“_arch”后缀来加以区分。
   
  3.4 元件 component
  元件 component在VHDL设计的层次结构中使用。
  规则:其名称以包或实体的缩略名作开头;
  可取有实际意义的单词,大小写可混用,最好不要超过8个字符。
   
  3.5 配置
  配置是用来说明逻辑模块和其构造体间的关系。
  规则:配置名中要包含顶层设计名;以大写字母开头,不超过15个字符。
  推荐:加“_cfg”后缀区分多个文件。
   
  3.6包、函数和过程
  3.6.1 包
  规则:
  ·包中要包含系统所需定义的所有常量,数据类型,模块,过程和函数;
  ·包名以大写字母开头,不超过15个字符。
  推荐:加“_pkg”后缀区分多个文件,为包定义一个3-4个字符的缩略名,
  加在其中的常量,过程和函数名中,用以区分不同包中的内容。
  3.6.2 函数和过程
  规则:
  ·以大写字母开头,不超过10个字母;
  ·要体现其功能,用前缀“l_”表示局部变量;
  ·局部信号应有其特征域。
  推荐:加入包的缩略名于其中。
   
  3.7 常量和类属说明
  规则:用大写字母,要明确描述常量的用法。
  推荐:加入包的缩略名于其中。
   
  3.8 枚举(enumeration),数据类型,记录和数组
  规则:用大写字母,新数据类型要加后缀“_typ”。
   
  3.9 信号和变量
  3.9.1 信号
  规则:
  ·第一个符号必须是字母,信号名要描述其功能,不超过15个字符;
  ·头三个字母要显示说明驱动模块的类型,要把其驱动实体,模块或进程
  缩略名加在前面:如控制单元--“ctl”,算术逻辑运算单元--“alu”,
  乘法器--“mac”,数据地址发生器--“dag”;
  ·如果信号只是在仅有时钟的进程中获得其值的,则加“_q”,若是总线则
  加“_reg” 信号定义语句后要有一行注释描述其功能;
  ·信号名要表明信号的极性:高电平有效/正逻辑(P),低电平有效/负逻辑(N)
  ·全局信号“G”,局部信号“L”;若是三态信号,加Z;
  ·后续字符要说明信号的内容。
  例如:“alu{GBaugend”--其驱动的模块为算术逻辑运算单元,高电平有效
  全局信号,是算术逻辑运算单元的其中一个操作数的总线信号。
  “macNGWoverflow”--其驱动的模块是乘法器,低电平有效全局单线信号,
  其功能是在乘法器溢出时修改状态寄存器的溢出标志位。
  3.9.2 变量
  规则:
  ·变量名要简单并能描述其功能;
  ·变量名可包含各种格式的字母、数字和下划线;
  ·变量名要确切的表示其行为。
   
  3.10进程和块
  进程、块和配置可取有实际意义的单词,大小写可混用,最好不超过8个字符。
  3.10.1 进程
  规则:
  ·所有进程必须有进程名,用以描述其功能;
  ·注释要包含以下内容:组合、时序进程,组合进程要定义所有
  敏感信号,时序进程要定义时钟和其边沿(上升沿或下降沿), 时序进程还要定义复位信号--如果有的话,其有效与否与时钟有关。
  3.10.2 块
   
  3.11 测试工作台 test bench
  由于测试工作台在设计流程种的重要地位,因此,对其有一些特殊的要求。
  规则:
  ·其名称要与实体名一致,且加后缀“_TB”;
  ·结构体、进程、变量和信号同样遵循上述规则;
  ·内存组织和仿真生成由过程和函数来实现;
  ·出错报告要提供下述信息:实体或模块名,信号或变量名,
  过程或函数名,当前时间点,错误号或错误名,可能的出错原因,
  出错位置(RTL, structural 或 behavioral代码);
   
  3.12 文件和目录结构
  现在在目前的集成开发环境中自动管理
   
  3.13 其它

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -