0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简谈FPGA研发设计相关规范(企业中很实用)

FPGA学习交流 来源:互联网 作者:佚名 2018-05-21 14:56 次阅读

大家好!又到了每日学习的时间了,今天我们聊一聊FPGA做开发的时候,有哪些设计规范,从文档到工程建立等,聊一聊也许你会学到很多东西,少走很多弯路哦!
在团队项目开发中,为了使开发的高效性、一致性、正确性,团队应当要有一个规范的设计流程。按照规范来完成项目的设计开发工作,归类清晰明了的工程文件夹级别;项目应拥有良好风格和完整的文档,如设计思路与调试记录及器件选型等;代码书写高效,即统一的书写规范,文件头包含的信息完整,无论自己还是团队他人阅读便一目了然。



一、文档命名:
清晰的文档命名能够让我们思路非常的清晰,所以FPGA工程文件夹的目录要求层次鲜明,归类清晰。一个工程必须要有一个严整的框架结构,用来存放相关的文档、设计,不仅方便自己查看,也提高了项目的团队工作效率。
下面我们来举例说明:
一级文件夹为工程名
二级文件夹多个:
用以存放源文件
用以存放Testbench文件
用来存放设计思路相关类的文件
用来存放IP 核的文件
等等…



二、设计文档化:
将自己对设计的思路和调试记录在文档中,有利于以后对模块功能的添加和维护,并且在项目联调时方便项目组其他人员读代码。也方便不同厂家的FPGA之间移植,以及FPGA到ASIC的移植。如下图就是设计文档化的举例说明,文档介绍清晰,功能分析明确,有利于以后对模块功能的添加和维护。

154342q75nbex3fsnx7gng.png

设计思路:按照项目的要求,自顶向下的分成若干模块,分别编写功能。顶层尽量只做行为描述,逻辑描述在底层编写。模块的编写要有硬件电路思维方式,每一个模块的设计都应考虑是否存在该硬件电路,尽量采用同步设计。



三、编程风格:
每个module应存在于单独的源文件中,源文件名应与其所包含的模块名相同。每个设计都应该有一个完善的文件头,包含公司名称、设计者、设计时间、文件名、所属项目、模块名称及功能、修改记录及版本信息等内容。代码中的标识符采用传统C语言的命名方法,在单词之间用下划线分开,采用有意义,能反应对象特征、作用和性质的单词命名标识符,以此来增强程序的可读性。为避免标识符过于冗长,较长的单词可以适当的缩写。



四、代码规范:
低电平有效的信号,后缀名要用“_n”,比如低电平有效的复位信号“rst_n”
模块名和信号名统一小写
变量名要小写,如wire、reg、input、output等定义的
变量命名应按照变量的功能用英文简洁表示出来“xxx_xxx_xxx”,避免过长
采用大写字母定义常量参数,参数名小于20个字母,如parameter TIME=20
时钟信号应前缀“clk”,复位信号应前缀“rst”
对于顶层模块的输出信号尽量被寄存
三态逻辑避免在子模块使用,可以在顶层模块使用
到其它模块的接口信号按:输入、(双向)、输出的顺序定义端口
一个模块至少要有一个输入、输出,避免书写空模块
时钟事件的表达式用“posedge”或“negedge”的形式
If语句嵌套不能太多
建议不要使用include语句
建议每个模块添加timescale
代码中给出必要的注释
每个文件有个一头文件
每个文件只包含一个模块
模块名和文件名保持一致
异步复位,用if(xxx==1’b1) 或 if(xxx==1’b0)
同步时序逻辑的always block中有且只有一个时钟信号,并且在同一个沿动作
采用同步设计,避免使用异步逻辑
一般不要将时钟信号作为数据信号的输入
不要在时钟路径上添加任何buffer
在顶层模块中,时钟信号必须可见
不要采用向量定义的方式定义一组时钟信号
不要在模块内部生成时钟信号,使用pll产生
尽量不使用任务
不使用事件变量
不使用系统函数
不使用disable语句
尽量不使用forever、repeat、while等循环语句
不使用不可综合的运算符
在一个always语句中有且只能有一个事件列表
移位变量必须是一个常数
时序逻辑语块中统一使用非阻塞型赋值
组合逻辑语块中使用阻塞型赋值

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593158
收藏 人收藏

    评论

    相关推荐

    FPGA的片内资源

    FPGA的片内资源
    发表于 01-08 22:12

    FPGA研发设计相关规范实用)

    今天和大侠聊一聊FPGA研发设计相关规范,养成良好的个人习惯,代码设计风格等,都有助于日后发展。有哪些设计规范,从文档到工程建立等,聊一聊
    发表于 04-16 15:42

    fpga经验

    fpga经验
    发表于 08-06 14:38

    fpga高手经验

    fpga高手经验
    发表于 08-20 15:23

    面试别把薪酬的太低

    变相加薪——提高福利待遇。若是吃进买单选择再次跳槽,请三思而后行,因为这次压上的砝码是“职业规划管理职业规划”。原因三:不明薪资构成这是不规范企业最爱玩的“花招”,谈判时只收入总数,让求职者误以为是基本工资
    发表于 01-20 20:20

    国内企业级固态硬盘生产研发企业招聘

    国内企业级固态硬盘生产企业,目前已经完成C轮融资,现招聘嵌入式固件研发工程师,坐标北京、上海。职位描述:1、 负责公司存储产品系统架构和功能的设计开发;2、 联合软硬件设计人员进行系统集成测试、调试
    发表于 11-17 10:36

    国内知名企业招聘FPGA研发工程师

    FPGA研发工程师 地点:广州主要职责:1、理解部件功能需求并对需求进行详细分解;2、承担电路设计和编码,实现功能需求以及输出流程规定相关技术文档;3、组织进行部件设计Review以及完成测试;4
    发表于 03-07 14:16

    FPGA设计法为什么这么简单

    由潘文明先生开创的IC/FPGA设计法,具备划时代的意义。这种设计方法不仅将IC/FPGA学习难度降到了最低,同时将设计过程变得简单,并规范了代码避免了混乱,将出错几率降到最低。下
    发表于 12-15 15:10

    FPGA 研发设计相关 规范企业实用)

    大家好!又到了每日学习的时间了,今天我们聊一聊FPGA做开发的时候,有哪些设计规范,从文档到工程建立等,聊一聊也许你会学到很多东西,少走很多弯路哦!在团队项目开发,为了使开发的高效性、一致性
    发表于 02-24 15:58

    明德扬独创“至设计法”介绍

    ,也学习和使用,并运用到实际工作;三、规范性设计过程采用至设计法独具特色的“八步法”,把FPGA设计步骤标准化,思路清晰,布局简洁,逻辑严谨,顺序流畅。所有项目只需要依据
    发表于 07-25 16:50

    FPGA研发设计相关规范企业初入职场实用)

    发表于 06-30 13:53

    明德扬至设计原理资料包(官方原版)

    FPGA工作经验的工程师,初步了解到至设计法的优越性后,也学习和使用,并运用到实际工作;3、 规范性。设计过程采用至设计法独具特色的“
    发表于 02-18 15:30

    FPGA研发设计相关规范企业初入职场实用)

    FPGA研发设计相关规范,养成良好的个人习惯,代码设计风格等,都有助于日后发展。有哪些设计规范,从文档到工程建立等,聊一聊也许你会学到很多
    发表于 05-23 18:15

    FPGA的竞争冒险和毛刺问题

    。 但是和所有的数字电路一样,FPGA 电路也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定性,严重时会导致整个数字系统的误动作和逻辑紊乱。下面就来讨论交流一下FPGA 的竞争冒险与毛刺
    发表于 05-30 17:15

    基于FPGA的千兆以太网设计

    大侠带来基于FPGA的千兆以太网设计,话不多说,上货。今天我们来简单的聊一聊以太网,以太网在FPGA学习属于比较高级的内容了,有些大侠
    发表于 06-01 18:39