0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习系列:6.组合逻辑和时序逻辑

FPGA学习交流 来源:互联网 作者:佚名 2018-05-31 11:40 次阅读

设计背景:

Verilog HDL语言分为面向综合和面向仿真两大类语句,且可综合语句远少于仿真语句,读者可能会有可综合设计相对简单的感觉。然而事实刚好与此相反,这是因为:首先,可综合设计是用来构建硬件平台的,因此对设计的指标要求很高,包括资源、频率和功耗,这都需要通过代码来体现;其次,在实际开发中要利用基本Verilog HDL语句完成种类繁多的硬件开发,给设计人员带来了很大的挑战。所有的仿真语句只是为了可综合设计的验证而存在。为了让读者深入地理解可综合设计、灵活运用已学内容,本章将可综合设计中的基本知识点和难点提取出来,融入Verilog HDL语法以及开发工具等诸多方面,以深入浅出的方式向读者说明设计中的难点本质

设计原理:

本次的设计主要是用来理解组合和时序逻辑的关系和写法,通过描述组合和时序逻辑电路来仿真出对用的仿真波形,然后来分析其逻辑特点和相应的关系。

设计架构图:

image.png

设计代码:

组合逻辑设计模块

0modulestudy(data_1,data_2,data_out);//端口列表

1

2 inputdata_1,data_2;//输入

3 outputregdata_out;//输出

4

5 //描述一个组合逻辑电路

6 always@(*)

7 begin

8 data_out =data_1 &&data_2;//与逻辑

9 end

10

11endmodule

测试模块

0`timescale1ns/1ps

1

2moduletb;

3

4 regdata_1,data_2;//定义输入寄存器

5 wiredata_out;//定义输出线型

6

7 study study_dut(//设计模块端口例化

8 .data_1(data_1),

9 .data_2(data_2),

10 .data_out(data_out)

11 );

12

13 initialbegin//描述数据流的变化

14 data_1 =0;data_2 =0;

15 #200

16 data_1 =1;data_2 =0;

17 #200

18 data_1 =0;data_2 =1;

19 #200

20 data_1 =1;data_2 =1;

21 #200

22 data_1 =0;data_2 =0;

23 #200

24 $stop;//系统任务停止

25 end

26

27endmodule

组合逻辑仿真图:

image.png

在仿真波形中可以清楚的看到输入数据流的变化顺序,数据翻转后,输出立马改变没有延迟。

时序逻辑设计模块

0modulestudy(clk,data_1,data_2,data_out);//端口列表

1

2 inputclk,data_1,data_2;//输入

3 outputregdata_out; //输出

4

5 //描述一个组合逻辑电路

6 always@(posedgeclk)

7 begin

8 data_out <=data_1 &&data_2;//与逻辑

9 end

10

11endmodule

测试模块

0`timescale1ns/1ps

1

2moduletb;

3

4 regclk,data_1,data_2;//定义输入寄存器

5 wiredata_out;//定义输出线型

6

7 study study_dut(//设计模块端口例化

8 .clk(clk),

9 .data_1(data_1),

10 .data_2(data_2),

11 .data_out(data_out)

12 );

13

14 initialbegin//描述数据流的变化

15 clk =1;data_1 =0;data_2 =0;

16 #200.1

17 data_1 =1;data_2 =0;

18 #200.1

19 data_1 =0;data_2 =1;

20 #200.1

21 data_1 =1;data_2 =1;

22 #200.1

23 data_1 =0;data_2 =0;

24 #200

25 $stop;//系统任务停止

26 end

27

28 always#10clk =~clk;

29

30endmodule

时序逻辑仿真图:

image.png

在仿真中可以清楚的看到,在时序逻辑中,我们或综合处寄存器,也就是说得到的数据会在寄存器中存一个上升沿,因为用的是上升沿触发,在波形中一看到。当两个输入都为高电平的时候输出也应该为高电平,可是没有立马的变为高电平,要等下一个上升沿来了才能变为高电平。

这样就直观的看清楚了组合和时序逻辑综合出的波形的差距,也就是一个有综合出是线型,一个是寄存器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593159
  • 时序逻辑
    +关注

    关注

    0

    文章

    37

    浏览量

    9099
收藏 人收藏

    评论

    相关推荐

    一文解析FPGA的片上资源使用情况(组合逻辑时序逻辑

    本文主要介绍的是FPGA的片上资源使用情况,分别是从组合逻辑时序逻辑来详细的分析。
    发表于 04-18 09:06 1.6w次阅读
    一文解析<b class='flag-5'>FPGA</b>的片上资源使用情况(<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>及<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>)

    FPGA组合逻辑时序逻辑、同步逻辑与异步逻辑的概念

    数字电路根据逻辑功能的不同特点,可以分成两大类:一类叫做组合逻辑电路,简称组合电路或组合逻辑;另
    发表于 12-01 09:04 490次阅读

    FPGA中何时用组合逻辑时序逻辑

    数字逻辑电路分为组合逻辑电路和时序逻辑电路。时序逻辑
    发表于 03-21 09:49 526次阅读

    soc中的组合逻辑时序逻辑应用说明

    芯片设计是现代电子设备的重要组成部分,其中组合逻辑时序逻辑是芯片设计中非常重要的概念。组合逻辑
    的头像 发表于 08-30 09:32 877次阅读

    FPGA实战演练逻辑篇47:消除组合逻辑的毛刺

    消除组合逻辑的毛刺本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt 在章节3.2的最后部分对于
    发表于 07-08 10:38

    勇敢的芯伴你玩转Altera FPGA连载25:组合逻辑时序逻辑

    ```勇敢的芯伴你玩转Altera FPGA连载25:组合逻辑时序逻辑特权同学,版权所有配套例程和更多资料下载链接:http://pan.
    发表于 11-17 18:47

    【技巧分享】时序逻辑组合逻辑的区别和使用

    根据逻辑电路的不同特点,数字电路分为组合逻辑时序逻辑,明德扬粉丝里的同学提出,无法正确区分,今天让我跟一起来
    发表于 03-01 19:50

    FPGA零基础学习:数字电路中的组合逻辑

    大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、
    发表于 02-21 15:35

    FPGA中何时用组合逻辑时序逻辑

    的。话不多说,上货。 在FPGA中何时用组合逻辑时序逻辑 在设计FPGA时,大多数采
    发表于 03-06 16:31

    为什么FPGA可以用来实现组合逻辑电路和时序逻辑电路呢?

    为什么FPGA可以用来实现组合逻辑电路和时序逻辑电路呢?
    发表于 04-23 11:53

    FPGA组合逻辑时序逻辑的区别

    数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑
    发表于 11-20 12:26 8666次阅读

    组合逻辑电路和时序逻辑电路比较_组合逻辑电路和时序逻辑电路有什么区别

    组合逻辑电路和时序逻辑电路都是数字电路,组合逻辑电路在逻辑
    发表于 01-30 17:26 9.2w次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路比较_<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路有什么区别

    数字设计FPGA应用:时序逻辑电路FPGA的实现

    本课程以目前流行的Xilinx 7系列FPGA的开发为主线,全面讲解FPGA的原理及电路设计、Verilog HDL语言及VIVADO的应用,并循序渐进地从组合
    的头像 发表于 12-05 07:08 2592次阅读
    数字设计<b class='flag-5'>FPGA</b>应用:<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路<b class='flag-5'>FPGA</b>的实现

    组合逻辑电路和时序逻辑电路的区别和联系

    数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑
    的头像 发表于 03-14 17:06 5139次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路的区别和联系

    时序逻辑电路有哪些 时序逻辑电路和组合逻辑电路区别

    时序逻辑电路是一种能够存储信息并根据时钟信号按照特定顺序执行操作的电路。它是计算机硬件中非常重要的一部分,用于实现存储器、时序控制器等功能。与之相对的是组合
    的头像 发表于 02-06 11:18 1021次阅读