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

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

3天内不再提示

浅析FPGA规范化的重要性

DIri_ALIFPGA 来源:未知 作者:胡薇 2018-10-09 11:10 次阅读

很多人认为,IC/FPGA属于设计范畴。设计是一个需要设计师自由创作的过程,怎么可能被一些条条框框所局限呢?其实,设计规范化与自由创作之间没有任何矛盾。它只是制约了那些可能出错或者低效的行为,令设计思路更加明朗、设计效率得到提高、设计质量充分保证。还有人认为,目前在IC/FPGA设计方面,并没有类似工业ISO质量管理体系的国际通用标准规范体系,到底有没有这样的规范呢?

其实这是一个创造、发展、完善、规范的过程。比如ISO,就是在现代工业发展很多年后,才建立并逐步完善起来,又经过一段时间才大规模的推广使用。相比较之下,FPGA,甚至整个IT产业,都还属于正处于高速发展期,尚未完全成熟。其二,任何大型国际通用规范体系的雏形,都是由一些企业内部规范、行业内部规范逐步整合发展而成。目前有少量企业、研究所都有其相应的标准,成为通用规范需要一个过程。

来看一份计数器规范:

逐一考虑初值、加1条件、结束值三要素,且初值必须为0;

使用某一计数值,须同时满足加1条件;

结束条件必须同时满足加1条件,且结束值必须是结束值-1形式(计数是从0开始的);

取某个数时,assign形式必须为:(加1条件)&&(cnt==计数值-1);

每轮计数周期结束,计数器必须归0;

若要限定范围,推荐>=和<两种符号;

先写always段,条件用名字代替;再assign写加1条件;最后assign写结束条件;

加1条件必须与计数器严格对齐,其它信号一律向计数器对齐;

命名规范。如:add_cnt表示加1条件;end_cnt表示结束条件。

在实际设计中,考虑边界值通常要认真思考,而且很容易出错。在这条规则中,需要限定范围推荐使用“>=”和“<”两种符号。这里严格限制一定是“大于或等于”和“小于”,而不能用“大于”“小于或等于”。如要取前8位数,就取cnt>=0 && cnt<8。

该规则参考编程里的for循环语句。假如要循环8次,for循环的条件通常写成“i=0;i<8;i++”,前面的0表示开始值,后面的8表示循环次数。当然,也可以写成“i=0;i<=7;i++”,但是这些数字的意义令人费解。尽管7是从8-1得来,但是多一个-1的思考,完全是画蛇添足。代码不够简明,而且容易出现混乱。

在这份规范中,每一条原则都有其内在的原因,是从实际工作中凝练而出的,可以用于指导以后工作中通用需求的依据。

规范的意义不止于此,更重要的是对于学习者而言是一条捷径。在初期,不必过多的去纠结其原因,也就是说你不必去想“规则是怎么来的”,只需要按照规则要求去做,即可避免自己慢慢摸索所需要走的弯路。至于规则的原理,在长期的使用中慢慢就会理解并体会。按照正确的方法在实际中运用,接着在实际工作中反过来加深理解。这是“在战争中学习战争”的精髓。

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

    关注

    1602

    文章

    21320

    浏览量

    593156

原文标题:FPGA规范化的重要性

文章出处:【微信号:ALIFPGA,微信公众号:FPGA极客空间】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    工器具规范化使用

      电力企业安全工器具规范化操作指导系统 一、系统概述    对电力生产人员来说,了解各种安全工器具的性能和用途,正确掌握它们
    发表于 11-18 14:02

    BGA焊接温度控制重要性

    `请问BGA焊接温度控制重要性有哪些?`
    发表于 03-26 16:41

    Syncer模块的重要性是什么?

    我在我的项目中使用25G以太网IP。通过打开此IP的示例设计,我们可以看到许多SYNCER模块,一个FSM模块和一个流量生成器模块。我想问一下这些Syncer模块的重要性是什么,我是否需要在我的最终设计中使用所有syncer模块。
    发表于 05-18 09:25

    代码规范重要性是什么

    论代码规范重要性
    发表于 05-19 13:07

    使用ODDR原语的重要性是什么?

    你好我将virtex5 LX50与具有应根据standardEIA / TIA-644 LVDS规范终止的输出数据的设备连接起来我在用着IBUFDS用于将输入LVDS转换为LVTTL,OBUFDS用于输出信号和时钟这是这样做的正确方法为此目的使用ODDR原语的重要性是什么
    发表于 06-17 14:59

    欠压保护的重要性

    欠压保护的重要性双电源供电时欠压保护电路的注意事项
    发表于 03-03 06:06

    什么是网络拓扑,它的重要性是什么?

    什么是网络拓扑,它的重要性是什么?
    发表于 03-17 06:50

    ATPG是什么?ATPG有何重要性

    ATPG是什么?ATPG有何重要性?常见的DFT技术有哪几种?
    发表于 11-02 09:31

    时钟服务器的重要性是什么?

    时钟服务器的重要性是什么?
    发表于 11-08 08:31

    UPS的重要性

    中心机房的UPS太重要了,前不久就出现过停电坏了一个磁盘陈列硬盘的事故,一个2T的硬盘坏了,还好有一个备用的硬盘使用,否则磁盘陈列里的资料就岌岌可危了。服务器多了,UPS的重要性尤其重要,学校周边
    发表于 11-16 09:09

    arm汇编的重要性是什么?

    arm汇编的重要性是什么?
    发表于 11-30 08:03

    POE浪涌保护的重要性是什么?

    POE浪涌保护的重要性是什么?
    发表于 01-14 06:07

    代码规范化如何学习,单片机也要求规范化吗?

    代码规范化如何学习,单片机也要求规范化么?
    发表于 10-12 07:19

    深入剖析FPGA规范化重要性

    很多人认为,IC/FPGA属于设计范畴。设计是一个需要设计师自由创作的过程,怎么可能被一些条条框框所局限呢?其实,设计规范化与自由创作之间没有任何矛盾。
    的头像 发表于 10-11 09:59 3171次阅读

    怎么样才能让Java代码编写更规范化

    cars? 忘川如斯,拥有一切的人才更怕失去。 背景:如何更规范化编写Java 代码的重要性想必毋需多言,其中最重要的几点当属提高代码性能、使代码远离Bug、令代码更优雅。 一、MyBatis 不要为了多个查询条件而写 1 =
    的头像 发表于 08-27 09:31 3445次阅读