最近一直在学习FPGA编程的思想,如何才能让自己摆脱C语言,做到眼中代码,心中电路,这是我最近一直在思考的问题。读了一下锆石科技的FPGA硬件语法篇后,我发现了很多自己平时写Verilog时没有注意到的地方,带有C语言影子的地方,在这里总结一下,希望自己在日后写Verilog时不要再犯了

摆脱C语言!!!

1.三段式状态机

图来自锆石科技。

可见,对于状态机的状态编码,我们应该使用格雷码,还记得数电课老师说格雷码一次只改变一位,一直不知道有什么用,现在真的是恍然大悟!这样可以避免毛刺,避免因为两位变化不同步而进入错误状态!

然后对于三段式状态机

第一段:时序逻辑,使当前状态变为下一状态

第二段:组合逻辑,根据条件改变下一状态

第三段:组合逻辑,根据状态条件写输出

然后使用一个D触发器来寄存输出值,这一点下文会讲

2.使用D触发器来寄存值,使时序逻辑和组合逻辑分开

在Verilog中,时序电路用非阻塞赋值 <= ,组合逻辑使用阻塞赋值 = ,当电路较大时,容易分不清楚导致时序混乱,使用D触发器来将其分开,是一种不错的办法,如下图:

led_reg_n是组合逻辑中改变的,我们在组合逻辑中对其进行改变值得操作,然后在时序逻辑中,将其通过D触发器赋值给led_reg,便实现了分离。

又如同这个计数器得写法:

这样的有点引用锆石科技的话:

所以,请记住改变值用组合逻辑!然后再通过D触发器时序逻辑传出去!

【重拾FPGA】读锆石科技硬件语法篇有感相关推荐

  1. CSS魔法堂:重拾Border之——图片作边框

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  2. (87)FPGA读文件激励(readmemb)

    (87)FPGA读文件激励(readmemb) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA读文件激励(readmemb) 5)结语 1.2 FPGA简介 F ...

  3. (86)FPGA读文件激励(readmemh)

    (86)FPGA读文件激励(readmemh) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA读文件激励(readmemh) 5)结语 1.2 FPGA简介 F ...

  4. 重拾Java Network Programming(一)IO流

    前言 最近在重拾Java网络编程,想要了解一些JAVA语言基本的实现,这里记录一下学习的过程. 阅读之前,你需要知道 网络节点(node):位于网络上的互相连通的设备,通常为计算机,也可以是打印机,网 ...

  5. FPGA笔记之verilog语言(基础语法篇)

    文章目录 FPGA笔记之verilog语言(基础语法篇) 1. verilog 的基础结构 1.1 verilog设计的基本单元--module 1.2 module的使用 1.3 I/O的说明 1. ...

  6. 让你重拾信心的单片机入门,小哥带你了解

    \\\插播一条: 自己在今年整理一套单片机单片机相关论文800余篇 论文制作思维导图 原理图+源代码+开题报告+正文+外文资料 想要的同学私信找我. 电子编程入门到工程师--重拾信心-单片机一篇入门 ...

  7. Mysql如何实现隔离级别 - 可重复读和读提交 源码分析

    Abstract 本文会(1) 演示Mysql的两种隔离级别.  (2) 跟着mysql的源代码来看看它是怎么实现这两种隔离级别的. Mysql的隔离级别 当有多个事务并发执行时, 我们需要考虑他们之 ...

  8. HMS Core Insights第二期直播预告——华为定位技术让你重拾方向感

    [导读] 从古至今,人们从未停止对精确定位的追求.古人夜观星象定位,发明思南指引方向,用六分仪在大海上乘风破浪.而随着科技的发展,现代的人们已经可以通过手机享受便捷准确的定位服务.无论是出行导航,网购 ...

  9. 重拾HelloWorld

    文章目录 重拾HelloWorld 认知JavaCore 认知自我 重拾HelloWorld 重拾HelloWolrd,从HelloWorld世界感知一下目前的知识体系吧! 认知JavaCore 多维 ...

  10. FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计)

    FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计) 首先我们知道FPGA可以实现充当完整微处理器的逻辑,并且提供许多灵活性选项.下图体现出FPGA器件为何是现场可编辑门阵列器件. 为了使基于F ...

最新文章

  1. Scrum敏捷研发管理平台-Leangoo看板
  2. eclipse-python插件。如果online update的话,经常会失败,所以offline比较靠谱
  3. 数据类型的sizeof
  4. 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>
  5. SAP C4C OData服务的filter,客户端分页和排序的使用方式
  6. Lync与Exchange 2013 UM集成:Lync Server配置
  7. java难学还是pythonnanxue_关于python:为什么numpy中的“ NaN”比“ -np.inf”更小?
  8. 手机电池的更换标准/指标 最近小米手机换电池那些事
  9. 3.1Python数据处理篇之Numpy系列(一)---ndarray对象的属性与numpy的数据类型
  10. 鸟哥Linux服务器-8
  11. 数据库系统工程师输给了计算机等级考试二级
  12. matlab拟合函数导出,excel里曲线拟合的公式怎么导出?()
  13. 期货连续合约跳空处理
  14. 时序数据库TSDB逐日统计的Jave算法实现过程
  15. 是怎么回事?沉浸式体验反倒是局限虚拟现实
  16. python youtube api_使用youtube v3 API从youtube播放列表检索所有视频
  17. 用C语言将中文文本和英文文本合并为一段中文一段英文(翻译排版)
  18. 树莓派GPIO 基础(二)
  19. HP-UNIX 磁带备份-----make_tape_recovery命令详解
  20. python相关库快速下载

热门文章

  1. 职工个人所得税的计算方法
  2. Travelling not wandering
  3. react组件设计原则_可靠React组件设计的7个准则之封装
  4. 离线数据开发之任务调度系统
  5. trymyapps下载_Incentivized Application Starts Up-Trymyapps
  6. cad2006安装计算机中没有cad,CAD2006如何安装?AutoCAD2006安装教程图解
  7. 云计算与虚拟化是什么关系
  8. DOM是什么?(超详细解释)
  9. 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第二节-英国人做鸦片买卖
  10. 解决iPhone发送短信显示红色感叹号:尚未送达