8位宽的2对1多路复用器不起作用修复错误怎么解决呢?

problem 158-bugs_mux2
题目说明
这个 8 位宽的 2 对 1 多路复用器不起作用。修复错误。
模块端口声明
module top_module (    input sel,    input [7:0] a,    input [7:0] b,    output [7:0] out  );   
题目解析
sel的位宽不够,补到8位即可。
module top_module (    input logic sel,    input logic [7:0] a,    input logic [7:0] b,    output logic [7:0] out  );    assign out = ({8{sel}} & a) | (~{8{sel}} & b);endmodule  
点击submit,等待一会就能看到下图结果:
注意图中的ref是参考波形,yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。
这一题就结束了。
problem 159-bugs_nand3
题目说明
本题中的三输入与非门不工作了,找出并修正 bug。
读者必须使用提供的 5 输入与门来实现这个与非门。
模块端口声明
module top_module (input a, input b, input c, output out);  
题目解析
原题中只使用了与门~
module top_module (input logic a,                    input logic b,                    input logic c,                    output logic out                  );//    var logic out_temp ;    andgate inst1 (.out(out_temp) ,                   .a(a),                   .b(b),                    .c(c),                   .d(1'd1),                   .e(1'd1)                  );    assign out = ~out_temp ;endmodule  
点击submit,等待一会就能看到下图结果:
注意图中的ref是参考波形,yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。
这一题就结束了。
problem 160-bugs_mux4
题目说明
这个 4 对 1 多路复用器不起作用。修复错误。
下面无错误的 2 对 1 多路复用器:
module mux2 (    input sel,    input [7:0] a,    input [7:0] b,    output [7:0] out);  
模块端口声明
module top_module (    input [1:0] sel,    input [7:0] a,    input [7:0] b,    input [7:0] c,    input [7:0] d,    output [7:0] out  );   
题目解析
没啥大问题,还是变量位宽问题。
module top_module (    input logic [1:0] sel,    input logic [7:0] a,    input logic [7:0] b,    input logic [7:0] c,    input logic [7:0] d,    output logic [7:0] out      ); //    var logic [7:0] mux0, mux1;    mux2 u1_mux0 ( sel[0],    a,    b, mux0 );    mux2 u2_mux1 ( sel[0],    c,    d, mux1 );    mux2 u3_mux2 ( sel[1], mux0, mux1,  out );endmodule  
点击submit,等待一会就能看到下图结果:
注意图中的ref是参考波形,yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。
这一题就结束了。
problem 161-bugs_addsubz
题目说明
继续找bug
图片来自hdlbits
模块端口声明
module top_module (     input do_sub,    input [7:0] a,    input [7:0] b,    output reg [7:0] out,    output reg result_is_zero);  
题目解析
out条件举例不足。
module top_module (     input logic do_sub,    input logic [7:0] a,    input logic [7:0] b,    output logic [7:0] out,    output logic result_is_zero);    always_comb begin        case (do_sub)          0: out = a+b;          1: out = a-b;        endcase        if (out == 8'd0) begin            result_is_zero = 1 ;        end        else begin            result_is_zero = 0 ;        end                endendmodule  
点击submit,等待一会就能看到下图结果:
注意图中的ref是参考波形,yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。
这一题就结束了。
problem 162-bugs_case
题目说明
这个组合电路应该识别键 0 到 9 的 8 位键盘扫描码。它应该指示是否识别了 10 种情况中的一种(valid),如果是,则检测到哪个键。修复错误。
模块端口声明
module top_module (    input [7:0] code,    output reg [3:0] out,    output reg valid=1 );  
题目解析
信号定义时不能赋值,case最后一个选项位宽不对。
module top_module (    input logic [7:0] code,    output logic [3:0] out,    output logic valid );//     always_comb begin        out = 4'd0 ;        valid = 1'd1 ;        case (code)            8'h45: out = 4'd0;            8'h16: out = 4'd1;            8'h1e: out = 4'd2;            8'h26: out = 4'd3;            8'h25: out = 4'd4;            8'h2e: out = 4'd5;            8'h36: out = 4'd6;            8'h3d: out = 4'd7;            8'h3e: out = 4'd8;            8'h46: out = 4'd9;            default: valid = 1'd0;        endcase     endendmodule  
点击submit,等待一会就能看到下图结果:
注意图中的ref是参考波形,yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。
这一题就结束了。


红星医院完成“5G+智慧医疗”系统新疆首个远程超声机器人调试
网络摄像机系统应该选择怎样的交换机
ODU推出开创性产品 树立电子元器件市场标杆
AI创作物该不该受到应有的保护
多元传感测量系统在医疗电子设备中的应用分析
8位宽的2对1多路复用器不起作用修复错误怎么解决呢?
小米360掐架芯片大厂围观:寻找下一个联发科
交换机内存
MA8601升级版USB HUB工业级多功能多口集线器扩展芯片|MA8601替代方案
LSTM和GRU的动态图解
国外“白菜价” 国内加价买! 丰田兰德酷路泽2022年退出美国市场
承德科胜大米称重包装机,颗粒包装机|河北包装机
Nexperia推出650V的功率器件GAN063-650WSA
台湾“芯片大王”张忠谋这样评价大陆芯片产业
五一礼物榜耳机品牌推荐 真无线主动降噪蓝牙耳机推荐
高效解决口腔清洁问题,水牙线好用吗?
基于Arduino和LED条形图的电池电压指示器
博物馆怎样实现数字化升级?智慧导览系统功能详解与实施效益
备赛的时候芯片越来越难买应该怎么办?
升压变压器线圈绕法介绍与计算