当前位置: 首页 > 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的编程,必须要掌握这两种时序。

相关文章:

  • 2024年04月在线IDE流行度最新排名
  • 题解 -- 第六届蓝桥杯大赛软件赛决赛C/C++ 大学 C 组
  • 视频推拉流EasyDSS点播平台云端录像播放异常的问题排查与解决
  • mac 安装 pip,如果你的电脑已经有 python3
  • 网络套接字补充——TCP网络编程
  • C++ //练习 11.4 扩展你的程序,忽略大小写和标点。例如,“example.“、“exmaple,“和”Example“应该递增相同的计数器。
  • 使用node爬取视频网站里《龙珠》m3u8视频
  • 第十四届蓝桥杯(八题C++ 题目+代码+注解)
  • Python版【植物大战僵尸 +源码】
  • 非关系型数据库之Redis配置与优化
  • 【御控物联】JavaScript JSON结构转换(13):对象To数组——多层属性重组
  • 云计算面临的威胁
  • 【战略前沿】与中国达成生产协议后,飞行汽车即将起飞
  • GitHub git push超过100MB大文件失败(write error: Broken pipe)完美解决
  • 设计模式 —— 设计原则
  • http协议补充
  • TDK超高压陶瓷电容的国产替代---赫威斯电容HVC Capacitor
  • Linux: module: dump_pagetables: Unknown symbol init_top_pgt (err 0)
  • rust - 常用时间处理
  • React中使用antDesign框架
  • 欧盟公布终止进口俄能源计划,2027年为最后期限
  • 世界银行最新营商环境体检单:59个测评点,上海22项达全球最优水平
  • 世界哮喘日|专家:哮喘无法根治,“临床治愈”已成治疗新目标
  • 上海虹桥高铁站拦门事件反转,谁在带偏网友?
  • 五一假期上海两大机场客流量超193万人次,创历年同期最高
  • 长和获准出售巴拿马运河港口以外的港口?外交部:该报道没有依据