VL11 4位数值比较器电路:某4位数值比较器的功能表如下。

请用Verilog语言采用门级描述方式,实现此4位数值比较器

assign Y2 = A[3]>B[3]?1:
                (A[3]!=B[3]?0:
                 (A[2]>B[2]?1:
                  (A[2]!=B[2]?0:
                   (A[1]>B[1]?1:
                    (A[1]!=B[1]?0:
                     (A[0]>B[0]?1:0))))));
    assign Y1 = A==B?1:0;
    assign Y0 = ~Y2&~Y1;//当A=z或B=z时报错且存在行为级抽象

wire [3:0] y2, y1, y0;
    
genvar gen;
for(gen = 4; gen > 0; gen = gen - 1 ) begin
    compare compare1(     
        .a         (A[gen-1]),
        .b         (B[gen-1]),
        .y2        (y2[gen-1]),
        .y1        (y1[gen-1]),
        .y0        (y0[gen-1])
       );
end
    assign Y2 = y2[3] | y1[3]&y2[2] | y1[3]&y1[2]&y2[1] | y1[3]&y1[2]&y1[1]&y2[0];
    assign Y0 = y0[3] | y1[3]&y0[2] | y1[3]&y1[2]&y0[1] | y1[3]&y1[2]&y1[1]&y0[0];
    assign Y1 = y1[3]&y1[2]&y1[1]&y1[0];

//一位比较器
module compare(
    input a,
    input b,
    
    output y2, //a>b
    output y1, //a=b
    output y0  //a<b
);
    assign y2 = a&(~b);
    assign y1 = ~(a^b);
    assign y0 = (~a)&b;
        
endmodule //根据参考答案编写

VL12 4bit超前进位加法器电路:

4bit超前进位加法器的逻辑表达式如下:

中间变量Gi=AiBi,Pi=Ai⊕BiG_i=A_i B_i, P_i=A_i⊕B_iGi​=Ai​Bi​,Pi​=Ai​⊕Bi​

和:Si=Pi⊕Ci−1S_i=P_i⊕C_{i-1}Si​=Pi​⊕Ci−1​,进位:Ci=Gi+PiCi−1C_i=G_i+P_i C_{i-1}Ci​=Gi​+Pi​Ci−1​

请用Verilog语言采用门级描述方式,实现此4bit超前进位加法器,接口电路如下

wire [3:0] p,g;
    wire c3, c2, c1, c0;
genvar gen;
    for(gen = 4; gen >0; gen = gen - 1) begin
        pg_unit pg_1(
            .a        (A_in[gen-1]),
            .b        (B_in[gen-1]),
            .p        (p[gen-1]),    
            .g        (g[gen-1])
        );
    end
    assign c3 = g[3] | p[3]&g[2] | p[3]&p[2]&g[1] | p[3]&p[2]&p[1]&g[0] | p[3]&p[2]&p[1]&p[0]&C_1;
    assign c2 = g[2] | p[3]&p[2]&g[1] | p[3]&p[2]&p[1]&g[0] | p[3]&p[2]&p[1]&p[0]&C_1;
    assign c1 = g[1] | p[3]&p[2]&p[1]&g[0] | p[3]&p[2]&p[1]&p[0]&C_1;
    assign c0 = g[0] | p[3]&p[2]&p[1]&p[0]&C_1;
    
    assign CO = c3;
    assign S[0] = p[0]^C_1;
    assign S[1] = p[1]^c0;
    assign S[2] = p[2]^c1;
    assign S[3] = p[3]^c2;

module pg_unit(
    input a,
    input b,
    
    output p,
    output g
);
    assign p = a^b;
    assign g = a&b;
endmodule    //参考《数字逻辑设计与计算机组成》p75-76

VL13 优先编码器电路①:下表是某优先编码器的真值表。
①请用Verilog实现此优先编码器

always @(*)begin
        casex(I_n)
            9'b111111111: Y_n = 4'b1111;
            9'b0xxxxxxxx: Y_n = 4'b0110;
            9'b10xxxxxxx: Y_n = 4'b0111;
            9'b110xxxxxx: Y_n = 4'b1000;
            9'b1110xxxxx: Y_n = 4'b1001;
            9'b11110xxxx: Y_n = 4'b1010;
            9'b111110xxx: Y_n = 4'b1011;
            9'b1111110xx: Y_n = 4'b1100;
            9'b11111110x: Y_n = 4'b1101;
            9'b111111110: Y_n = 4'b1110;
            default: Y_n = 4'b1111;
        endcase
    end

VL14 用优先编码器①实现键盘编码电路:

请使用优先编码器①实现键盘编码电路,可添加并例化题目中已给出的优先编码器代码。

10个按键分别对应十进制数0-9,按键9的优先级别最高;按键悬空时,按键输出高电平,按键按下时,按键输出低电平;键盘编码电路的输出是8421BCD码。

要求:键盘编码电路要有工作状态标志,以区分没有按键按下和按键0按下两种情况。

优先编码器真值表如下图:

主要理解“没有按键按下”与“按键0按下”对应的状态:

wire [3:0] L_n;
encoder_0  encode(
    .I_n   (S_n[9:1]),
   
    .Y_n   (L_n)
);
    assign L = ~L_n;
    assign GS = ~(S_n[0] & L_n[0] & L_n[1] & L_n[2] & L_n[2]); //参考答案

VL15 优先编码器Ⅰ:

下表是8线-3线优先编码器Ⅰ的功能表。

①请根据该功能表,用Verilog实现该优先编码器Ⅰ。参考牛客网

reg [2:0] y;
    reg gs, eo;
    
    always @(*)begin
        if(~EI)begin
            y <= 3'b0;
            gs <= 0;
            eo <= 0;
        end
        else begin
        casex(I)
            8'b00000001: y <= 3'd0;
            8'b0000001x: y <= 3'd1;
            8'b000001xx: y <= 3'd2;
            8'b00001xxx: y <= 3'd3;
            8'b0001xxxx: y <= 3'd4;
            8'b001xxxxx: y <= 3'd5;
            8'b01xxxxxx: y <= 3'd6;
            8'b1xxxxxxx: y <= 3'd7;
            default: y <= 3'd0;
        endcase
            gs <= I[0]|I[1]|I[2]|I[3]|I[4]|I[5]|I[6]|I[7];
            eo <= ~gs;
        end
    end
    assign Y = y;
    assign GS = gs;
    assign EO = eo;

assign Y[2] = EI & (I[7] | I[6] | I[5] | I[4]);
    assign Y[1] = EI & (I[7] | I[6] | ~I[5]&~I[4]&I[3] | ~I[5]&~I[4]&I[2]);
    assign Y[0] = EI & (I[7] | ~I[6]&I[5] | ~I[6]&~I[4]&I[3] | ~I[6]&~I[4]&~I[2]&I[1]);
    
    assign GS = EI&(|I);
    assign EO = EI&(~GS);//组合逻辑

牛客网刷题记录(3)组合逻辑相关推荐

  1. 牛客网刷题记录 || 结构体和类

    这是牛客网刷题记录专栏第五篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...

  2. 牛客网刷题记录 || 循环

    这是牛客网刷题记录专栏第七篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...

  3. 牛客网刷题记录 || 第一番

  4. 牛客网刷题之SQL篇:非技术快速入门39T

    导航 前序 一.简单的关键字练习 1-10 二.知识点复习之 ==运算符== 1.算数运算符 2.比较运算符 3.逻辑运算符 4.位运算符 三.10-28T 0.简单题总结 1. SQL18 ==分组 ...

  5. 【牛客网刷题】中秋节前开启java专项练习错题总结第一天

    [牛客网刷题]中秋节前开启java专项练习错题总结第一天 概述 写在前面 错题分析 值得记录的错题 总结 写在最后 概述 还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累.对于这样一个特殊 ...

  6. 2023年大年初一 —— 牛客网刷题经验分享~

    2023年大年初一 -- 牛客网刷题经验分享~

  7. 牛客网 刷题前的准备工作(输入 输出 如何接收?)

    牛客网 刷题前的准备工作 牛客网 刷题前的准备工作 1. 数据读取接受问题 2.牛客刷题前的准备: 2.1. 弄清楚输入输出的行数关系 3.代码怎么写 3.1. 在牛客上测试自己的模板代码,是否能正确 ...

  8. verilog牛客网刷题代码汇总

    verilog牛客网刷题代码汇总 作者:安静到无声 个人主页 作者简介:人工智能和硬件设计博士生.CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇. Thanks♪(・ω・)ノ 如果 ...

  9. 牛客网刷题 --- 输入输出数据处理

    正确处理输入输出格式 常见的输入格式: 预先不输入数据的组数 - 直接读到文件结尾 预先输入数据的组数 - 读数据组数然后循环 只有一组数据 - 直接读数据 处理输出格式要注意细节,看题目的具体要求 ...

  10. 牛客网刷题-java

    大部分解答为牛客网各位同学的精彩回答,本文只是选择一些互联网常考题目记录备忘. 1.一个类的构造器可以调用这个类中的其他构造器: this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为t ...

最新文章

  1. sim中do文件/memory(readmemb命令符)/移位编写
  2. maven 常用的插件
  3. oracle基本的查询语句,Oracle基本查询语句
  4. linux 未找到wifi适配器,无线 - 重新启动后找不到WI-FI适配器
  5. C语言佛,佛大c语言毕业前补考.doc
  6. OGC 开放地理信息系统协会
  7. 英语单词辨异 —— 容易理解错的单词
  8. 指令重排序导致的可见性问题
  9. 分块存储视图状态数据
  10. Newtonsoft.Json取json字符串中的值得用法 看红色的部分就可以了
  11. oracle安装sqluldr2,Oracle sqluldr2工具使用方法
  12. JAVA自行车类代码_你好 请问你还有 java Web编写的自行车租赁管理系统源代码么...
  13. Python flag用法
  14. 蓝桥杯-决赛B组第七届java
  15. 正则表达式regex(入门使用)
  16. 【JS】H5打开支付宝
  17. 解读SpanBERT:《Improving Pre-training by Representing and Predicting Spans》
  18. JavaWeb新闻项目(查询阅读主题维护)
  19. 从位图图像中读取2D纹理(C ++,OpenGL)
  20. 10.2.0.1到12.2.0.1数据库迁移expdp+dblink导入失败

热门文章

  1. linux进程假死的原因_谈谈 Linux 假死现象
  2. 学习编程语言有哪些基本步骤呢?
  3. HTML5页面结构标签
  4. 常用媒体查询以及手机横竖屏监听
  5. 用python来开发webgame服务端
  6. 如何压缩PPT的容量?
  7. Matlab_textscan用法教程1_从指定行读取数据
  8. Garbled Circuits介绍 - 2 基础知识
  9. 现代密码学之安全多方计算
  10. PPT的一键操作 原来这么神奇