当前位置: 首页 > news >正文

FPGA之组合逻辑与时序逻辑

        数字逻辑电路根据逻辑功能的不同,可以分成两大类:组合逻辑电路和时序逻辑电路,这两种电路结构是FPGA编程常用到的,掌握这两种电路结构是学习FPGA的基本要求。

 1.组合逻辑电路

 

组合逻辑电路概念:任意时刻的输出仅仅取决于该时刻的输入,与其它时刻的输入状态无关

组合逻辑的Verilog_HDL的描述:根据组合逻辑的电路行为,有两种常用的RTL描述方式。一种是always触发为电平敏感列表信号;另一种是assign的数据流赋值语句。

 

举例说明:

  1. always模块实现组合逻辑

 

 

 从仿真结果来分析,确实如同组合逻辑电路的概念一样,data_out的输出结果只取决于当前data_in的逻辑数值。

使用always描述组合逻辑

always既可以用于描述组合逻辑电路,也可以用于描述时序逻辑电路。在描述组合逻辑电路时,always在使用上有以下几个特点:

1)在敏感列表中使用电平敏感事件,不要使用边缘敏感事件。

2)为变量赋值使用阻塞赋值(=),不要使用非阻塞赋值(<=)。

另外,在always块内被赋值的变量必须为reg型变量。

Assign赋值语句实现组合逻辑

 

 

 

 

 

使用assign描述组合逻辑电路

用assign描述的部分都是组合逻辑,注意assign只能对wire型变量进行赋值。

 2.时序逻辑电路

 

时序逻辑电路概念:任意时刻的输出不仅取决于该时刻的输入,而且还和电路原来的状态有关;从电路行为上讲,不管输入如何变化,仅当时钟的沿(上升沿或下降沿)到达时,才有可能使输出发生变化。

时序逻辑的Verilog_HDL的描述:根据时序电路的行为,使用always模块的敏感信号为沿变化的进行描述。

 举例说明:

 

 

 

 

使用always描述时序逻辑

(1)在描述时序电路的always块中的reg型信号都会被综合成寄存器,这是和组合逻辑电路所不同的。

(2)时序逻辑中推荐使用非阻塞赋值“<=”。

(3)时序逻辑的敏感信号列表只需要加入所用的时钟触发沿即可,其余所有的输入和条件判断信号都不用加入,这是因为时序逻辑是通过时钟信号的跳变沿来控制的。

3.章节总结

 本章节主要是对编程中常用到的两种时序进行、注意点进行了简单的介绍,想要学习好FPGA的编程,必须要掌握这两种时序。

http://www.lryc.cn/news/326149.html

相关文章:

  • git clone没有权限的解决方法
  • Redis 的内存回收策略
  • 小程序富文本图片宽度自适应
  • 安装redis时候修改过的配置文件
  • Stable Diffusion 本地部署教程
  • sql如何增加数据
  • 智慧交通(代码实现案例)
  • LeetCode 面试经典150题 205.同构字符串
  • 存内计算:释放潜能的黑科技
  • CentOS Stream 8系统配置阿里云YUM源
  • MySQL Explain 优化参数详细介绍
  • 代码随想录Day58:每日温度、下一个更大元素 I
  • 冒泡排序 快速排序 归并排序 其他排序
  • 阿里云服务器安装MySQL(宝塔面板)
  • 设计模式|发布-订阅模式(Publish-Subscribe Pattern)
  • 根据疾病名生成病例prompt
  • HarmonyOS网格布局:List组件和Grid组件的使用
  • NASA数据集—— 1984-2019年湖泊生长季绿色表面反射率趋势数据集
  • DMA知识
  • Linux 系统 docker快速搭建PHP环境
  • 逻辑设计问题 -- 设计一个函数
  • RHCE 补充:判断服务状态
  • 计算机网络:物理层 - 编码与调制
  • 《量子计算:揭开未来科技新篇章》
  • 机器人机械手加装SycoTec 4060 ER-S电主轴高精密铣削加工
  • docker 共享内存不足问题
  • 英语口语 3.27
  • pytest之统一接口请求封装
  • 使用npm仓库的优先级以及.npmrc配置文件的使用
  • Netty源码剖析——ChannelHandlerContext 篇(三十七)