zoukankan      html  css  js  c++  java
  • 逻辑设计中易忽略的错误


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

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

    这是 什么呢?锁存器啊!

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

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

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

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

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

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

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

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

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

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


    版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

    作者:杭州卿萃科技ALIFPGA

    原文地址:杭州卿萃科技FPGA极客空间 微信公众号


    扫描二维码关注杭州卿萃科技FPGA极客空间


  • 相关阅读:
    MacOS更改zsh命令行前缀
    python中os._exit()和sys.exit(), exit(0)和exit(1) 的用法和区别
    如何解析 redis 的 rdb 文件
    流量回放工具<二>
    策略路由配置<一>
    h3c镜像模式配置
    python上传gz文件请求
    优先队列(大顶堆实现)
    bm和kmp和bf
    dedecms 软件下载模块加入flashget快车下载代码
  • 原文地址:https://www.cnblogs.com/alifpga/p/9080944.html
Copyright © 2011-2022 走看看