网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

在FPGA的编程语言里,这是你最容易犯的错误

  逻辑写多了,有时候一些基本的错误忘了避免了。

  昨天设计逻辑的时候就不小心触雷了,有个信号有激励没响应,后来看了时序报告,有这么一句话。

    

 

  这是什么呢?锁存器啊!

  最容易产生的是在always(*)语句中,最后一定是所有分支条件都要描述并赋值。

  状态机中,同样如此,不但需要有default的状态,每个状态的都要有所有的分支都要赋值。

  如果设计很大,不容易查的话,可以打开综合报告,搜索“LATCH”关键词,查看是否有锁存器的产生,有就赶紧更改设计。

  而时序逻辑综合结果必然是触发器,因此不用检查时序逻辑的分支条件。所以还是那句话,能用时序逻辑,就尽量别用组合逻辑。

  当然如果是老鸟,这句话可忽略。

  阻塞和非阻塞,这件事情百分之九十九点九九是笔误,没见过开发者没事非要冒险试一下“=”跟“<=”的区别。

  很多人说这两个没啥区别,这两个符号啊,没出事就好,出事了查起来就烦了。

  所以记好了,组合逻辑里面用=,时序逻辑里面用<=,肯定不会错。

  硬件描述语言的坑还是很少的, 搞来搞去就是组合逻辑、时序逻辑,一些generat加for循环就算复杂的了,因此这块能说的不多。

  编程语言不是语言本身,而是每句逻辑之后的电路,新手入门学习的初学者一定要注意。

热门搜索:PDU12IEC TLM815NS UL800CB-15 UL24CB-15 DRV8313PWPR SPS-615-HG 602-15 6SPDX-15 EURO-4 LC1800 2839237 B3429D SBBSM2120-1 RBC11A 2320319 CC2544RHBR 2838319 SUPER6OMNI D 2320335 BQ25895MRTWR 1553DBPCB SS7619-15 TLM825GF SS240806 ADS1013IDGSR
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质