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

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

3天内不再提示

根据波形图编写Verilog代码

FPGA设计论坛 ? 来源:GitCode 开源社区 ? 2025-02-17 14:38 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1【题目】:

根据下面的时序图实现这个组合逻辑电路。

d0216d12-ecec-11ef-9310-92fbcf53809c.png

【个人思路】:

从上面的q输出为1处,可以看到a、b均为1,所以逻辑是 a &b.

module top_module (
    input a,
    input b,
    output q );//

    assign q = a & b; // Fix me

endmodule

2【题目】:

根据下面的时序图实现这个组合逻辑电路。

d03b9bd8-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】:

这个时序图稍微复杂点,最好是列出卡诺图,如下:

d046f8ca-ecec-11ef-9310-92fbcf53809c.png

红色部分的四个数据,可以看出来是 ( a同或b ) 与上 ( c同或d );

蓝色部分的四个数据,可以看出来是 ( a异或b ) 与上 ( c异或d );

红色+蓝色 =( a异或b ) 同或( c异或d ) =~a^b^c^d;

module top_module (
    input a,
    input b,
    input c,
    input d,
    output q );//

    //assign q = 1-a^b^c^d;
    assign q = ~a^b^c^d;
endmodule

3【题目】:

根据下面的时序图实现这个组合逻辑电路。

d057aa3a-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】:

这个时序图稍微复杂点,最好是列出卡诺图,如下:

d06bf2a6-ecec-11ef-9310-92fbcf53809c.png

像我这样框起来:红色:b | d;黄色:b | c;黑色:a | d;绿色:a | c;

module top_module (
    input a,
    input b,
    input c,
    input d,
    output q );//

assign q = b & d | b & c | a & d | a & c;

endmodule

4【题目】:

根据下面的时序图实现这个组合逻辑电路。

d07a8550-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】:

这个时序图稍微复杂点,最好是列出卡诺图,如下:

d08be570-ecec-11ef-9310-92fbcf53809c.png

红色:c;绿色:b;所以化简为 b | c。

module top_module (
    input a,
    input b,
    input c,
    input d,
    output q );//

    assign q = b | c; // Fix me

endmodule

5【题目】:

根据下面的时序图实现这个组合逻辑电路。

d093c60a-ecec-11ef-9310-92fbcf53809c.jpg

d0a8276c-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】 :

可以看出这是一个4输入、1输出的组合电路,且输出是根据c的取值来的,所以这个是个4选1电路(MUX4),所以可以用case语句来根据c的取值来进行输出。

module top_module (
    input [3:0] a,
    input [3:0] b,
    input [3:0] c,
    input [3:0] d,
    input [3:0] e,
    output [3:0] q );

    always@(*)begin
        case(c)
            4'd0:q = b;
        4'd1:q = e;
            4'd2:q = a;
        4'd3:q = d;
         default:   q = 4'hf;
        endcase
    end
endmodule

6【题目】:

根据下面的时序图实现这个组合逻辑电路。

d0be8912-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】 :

可以看出这是一个根据输入a的取值来进行输出的组合电路,可以用case语句来根据a的取值来进行输出。

module top_module (
    input [2:0] a,
    output [15:0] q );
    
    always@(*)begin
        case(a)
            3'd0:q = 16'h1232;
        3'd1:q = 16'haee0;
            3'd2:q = 16'h27d4;
        3'd3:q = 16'h5a0e;
        3'd4:q = 16'h2066;
        3'd5:q = 16'h64ce;
        3'd6:q = 16'hc526;
        3'd7:q = 16'h2f19;
         default:;
        endcase
    end
    
endmodule

7【题目】:

根据下面的时序图实现这个时序逻辑电路。

d0ce810a-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】 :

可以看出输出q是输入a的取反,因为是时序逻辑,所以输出落后输入一个时钟周期。

module top_module (
    input clk,
    input a,
    output q );

    always@(posedge clk)begin
        if(a)
            q <= 1'b0;
        else
            q <= 1'b1;
    end
endmodule

8【题目】:

根据下面的时序图实现这个时序逻辑电路。

d0dfca28-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】 :

由图可见,p为a在clock为高电平时的选通信号,q为clock下降沿触发的信号,存放p的值。

module top_module (
    input clock,
    input a,
    output p,
    output q );
    
    always@(*)begin
        if(clock)
            p <= a;
        else
            p <= p;
    end
    
    always@(negedge clock)begin
            q <= p;
    end
endmodule

9【题目】:

根据下面的时序图实现这个时序逻辑电路。

d0e9d162-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】 :

可以看出这是一个~a使能的0~6计数器,a高电平时计数器复位到4.

module top_module (
    input clk,
    input a,
    output [3:0] q );

always@(posedge clk)begin
        if(~a)begin
            if(q == 4'd6) 
            q <= 4'd0;
            else
                q <= q + 1'b1;
        end
        else
            q <= 4'd4;
    end
endmodule

10【题目】:

根据下面的时序图实现这个电路,该电路包含组合逻辑和D触发器。

d0fd4788-ecec-11ef-9310-92fbcf53809c.jpg

【个人思路】 :

可以看到当输出q为高电平时,a、b、state三个中总是有奇数个高电平,所以q是a、b、state三个的偶校验位:q = a ^ b ^ state;

再来观察state的变化,state的变化都发生在(a == b)时,且变化的值为a(或者说b),当a不等于b时,state保持不变。

module top_module (
    input clk,
    input a,
    input b,
    output q,
    output state  );

    assign q = a ^ b ^ state;
    
    always @(posedge clk)begin
        if(a == b)
        state <= a;
        else
            state <= state;
    end
endmodule

转载:https://gitcode.csdn.net/662b4d5f9ab37021bfb1a3f8.html

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

    关注

    29

    文章

    1367

    浏览量

    112418
  • 波形图
    +关注

    关注

    1

    文章

    35

    浏览量

    15233
  • 组合逻辑电路

    关注

    6

    文章

    71

    浏览量

    14933

原文标题:FPGA基本功-根据波形图编写Verilog代码

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LabVIEW 波形图波形图

    LabVIEW 波形图波形图
    发表于 08-27 09:02

    调频信号波形图

    调频信号波形图
    发表于 07-31 12:06 ?8164次阅读

    74163的逻辑符号以及波形图

    74163的逻辑符号以及波形图
    发表于 01-12 13:52 ?8692次阅读
    74163的逻辑符号以及<b class='flag-5'>波形图</b>

    计数器级联及波形图

    计数器级联及波形图
    发表于 01-12 13:56 ?4668次阅读
    计数器级联及<b class='flag-5'>波形图</b>

    LabVIEW中导出波形图或图表至文件

    LabVIEW中导出波形图或图表至文件LabVIEW中导出波形图或图表至文件LabVIEW中导出波形图或图表至文件
    发表于 02-18 11:44 ?213次下载

    PWM调速控制原理和电压波形图

    PWM调速控制原理和电压波形图及方案解析,希望给大家做参考。
    发表于 02-05 11:52 ?1.4w次阅读
    PWM调速控制原理和电压<b class='flag-5'>波形图</b>

    ISE环境下基于Verilog代码的仿真测试pdf下载

    是使用 HDL Bencher 的图形化波形编辑功能编写,即波形图仿真;另一种就是利用 HDL 语言,即代 码仿真。由于后者功能更加强大,所以这里举例介绍基于 Verilog 语言的测
    发表于 02-24 10:20 ?1次下载

    基于multisim调频仿真电路波形图详解

    本文档的主要内容详细介绍的是基于multisim调频仿真电路波形图详解。
    发表于 09-29 16:54 ?131次下载
    基于multisim调频仿真电路<b class='flag-5'>图</b>及<b class='flag-5'>波形图</b>详解

    LabVIEW初级教程之波形图波形图表的详细资料说明

    在LabVIEW中经常使用的数据绘图工具是波形图表和波形图波形图表是显示一条或者多条曲线的特殊数值控件,一般用于显示一恒定速率采集到的数据。波形图表会保留来源于此前更新的历史数据
    发表于 01-15 11:12 ?62次下载
    LabVIEW初级教程之<b class='flag-5'>波形图</b>和<b class='flag-5'>波形图</b>表的详细资料说明

    LabVIEW初级教程之波形图波形图表的相关例程合集免费下载

    本文档的主要内容详细介绍的是LabVIEW初级教程之波形图波形图表的相关例程合集免费下载
    发表于 01-15 11:12 ?52次下载
    LabVIEW初级教程之<b class='flag-5'>波形图</b>和<b class='flag-5'>波形图</b>表的相关例程合集免费下载

    波形图波形图表的区别和技巧

    在labview中使用最多的图形显示有波形图波形图表,在介绍波形的技巧之前我们先来弄清楚波形图波形图表的区别。
    的头像 发表于 10-22 11:43 ?3.6w次阅读
    <b class='flag-5'>波形图</b>和<b class='flag-5'>波形图</b>表的区别和技巧

    labview波形图Y坐标分层思路

    labview 波形图Y坐标分层思路分析
    发表于 08-12 16:18 ?17次下载

    如何使用参数化编写可重用的verilog代码

    我们将介绍如何使用verilog参数和generate语句来编写可重用的verilog 代码。 与大多数编程语言一样,我们应该尝试使尽可能多的
    的头像 发表于 05-11 15:59 ?1511次阅读

    使用PlantUml绘制逻辑时序/波形图

    使用PlantUml绘制时序波形图的简单说明如下。
    的头像 发表于 05-14 09:28 ?2691次阅读
    使用PlantUml绘制逻辑时序<b class='flag-5'>图</b>/<b class='flag-5'>波形图</b>

    FPGA的Verilog代码编写规范

      注:以R起头的是对编写Verilog代码的IP设计者所做的强制性规定,以G起头的条款是建议采用的规范。每个设计者遵守本规范可锻炼命名规范性。
    的头像 发表于 08-15 16:23 ?2985次阅读