Verilog刷题笔记63

news2024/9/22 21:27:57

找BUG
1、:Bug mux2
在这里插入图片描述
在这里插入图片描述
挑错:

module top_module (
    input sel,
    input [7:0] a,
    input [7:0] b,
    output [7:0]out  );

    
    assign out =sel?a:b;

endmodule

结果正确:
在这里插入图片描述
原因:
1、输出out也应为8位
2、逻辑错误,&按位操作,需要将sel扩展到8位才可以。
但是,& 不可替换为&&,否则out的值只会是0或1。
逻辑错误也可通过三目运算符进行判断。

2:Bugs nand3
在这里插入图片描述
挑错:

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

    wire outzj;
    andgate inst1 (outzj,a,b,c,1,1);
    
    assign out=~outzj;

endmodule

结果正确:
在这里插入图片描述

原因:
用一个5输入的与门实现三输入的与非门。
首先要补全输入,之前空置的输入可用1’b1代替,再对模块的输出结果进行取反。
给定模块的输出在最前面而不是最后一位参数。

3:Bugs mux4
This 4-to-1 multiplexer doesn’t work. Fix the bug(s).

You are provided with a bug-free 2-to-1 multiplexer:

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  ); //

    wire [7:0]mux0,mux1;
    mux2 mux00 ( sel[0],    a,    b, mux0 );
    mux2 mux11 ( sel[0],    c,    d, mux1 );
    mux2 mux22 ( sel[1], mux0, mux1,  out );

endmodule

结果正确:
在这里插入图片描述

原因:
使用给定的2选1选择器实现4选1,测试发现2选1的输出为sel=0输出a,sel=1输出b
例化名称不与变量名称相同
中间变量定义位宽不要出错

4:Bugs addsubz
The following adder-subtractor with zero flag doesn’t work. Fix the bug(s).
在这里插入图片描述
挑错:

module top_module ( 
    input do_sub,
    input [7:0] a,
    input [7:0] b,
    output reg [7:0] out,
    output reg result_is_zero
);//

    always @(*) begin
        case (do_sub)
          0: out = a+b;
          1: out = a-b;
        endcase



        result_is_zero=(out==8'd0)?1:0;
    end


endmodule

结果正确:
在这里插入图片描述
原因:
~out 取反也不能说明out是否为全0,可以通过如下方法:

(~(out&&1'b1))
(out==8'd0)

一个always组合逻辑块内不要既有case又有其他的逻辑,有的允许,有的不允许,尽量不用。
always里面不要用assign进行赋值

5:Bugs case
This combinational circuit is supposed to recognize 8-bit keyboard scancodes for keys 0 through 9. It should indicate whether one of the 10 cases were recognized (valid), and if so, which key was detected. Fix the bug(s).
在这里插入图片描述
挑错:

module top_module (
    input [7:0] code,
    output reg [3:0] out,
    output reg valid=1 );//

    always @(*)begin
        valid=0;
        out=0;
        case (code)
            8'h45: begin out = 0;valid=1;end
            8'h16: begin out = 1;valid=1;end
            8'h1e: begin out = 2;valid=1;end
            8'h26: begin out = 3;valid=1;end
            8'h25:begin  out = 4;valid=1;end
            8'h2e:begin  out = 5;valid=1;end
            8'h36: begin out = 6;valid=1;end
            8'h3d:begin  out = 7;valid=1;end
            8'h3e: begin out = 8;valid=1;end
            8'h46: begin out = 9;valid=1;end
        endcase
    end

endmodule

结果正确:
在这里插入图片描述

原因:
原代码中out=3时code是8’d26,out=9时code是6’h46,其它都是8位16进制,改成8’h之后成功运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【可兼容的】protobuf、streamlit、transformers、icetk、cpm_kernels版本号

搞大模型训练的工作不可避免地需要很多库,但是非常讨厌的事情是这些库动不动就不兼容。最近在做文本分类训练的时候又遇到了这个问题,为了避免后面再安装包的时候把我之前的环境破坏了,所以特地来记录一下:protobuf、streamlit、t…

GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解

GD32F4xx—RTC初始化设置及闹钟方式实现秒中断讲解 1、下载链接:源码工程 一、概述 GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置。RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BC…

欧科云链: Web3浪潮下合规是“必选项”, 技术创新成发展重点

如果说2023年将是Web3的监管与合规之年。那么2024年就是Web3发展里程碑之年。 自2023年,包括美国、日本、新加坡、迪拜、中国香港等全球多个国家和地区金融中心都先后宣布要成为Web3中心、虚拟资产中心,并努力在监管框架下推动Web3生态的技术创新。 放…

对新手的现货白银交易建议

近期现货白银价格表现十分不错,连续的上涨已经突破了30关口,这是一个重要的心理关口,受投资行情的吸引,很多新手现货白银交易者入场。那么,有没有一些对这些新手投资者的现货白银交易建议呢?下面我们就来讨…

通过Docker部署Nacos,以及Docker Desktop进行管理

目录 一.不需要持久化存储 1.启动容器 2.查看容器和镜像​ 3.容器管理 二.持久化存储启动mysql容器 1.创建docker卷 2.运行容器,指定卷 3.在nacos里面随便建个配置文件 4.停止并删除nacos容器 5.重新运行容器,并且挂载相同的卷,也就是上面第二步的命令 6.打开nacos并…

redis的紧凑列表ziplist、quicklist、listpack

文章目录 前言一、ziplist1.1 ziplist 查找复杂度高1.2 ziplist 连续更新风险 二、quicklist三、listpack 前言 当数据量较小时,Redis 会优先考虑用 ziplist 来存储 hash、list、zset,这么做可以有效的节省内存空间,因为 ziplist 是一块连续…

2024年用哪个思维导图软件好?这款在线工具堪称国产之光!

思维导图软件哪个好? 如今已经是2024年了,想做思维导图,面对琳琅满目的思维导图软件,哪一个才是最适合我们的呢? 在选用思维导图软件时,我们可能会综合考虑多个方面,譬如功能数量、操作易用性…

未来工作场所:知识中台与AI的融合

在快速迭代的未来工作场所,知识中台与AI的融合正引领着一场深刻的工作方式变革。这种融合不仅优化了企业的知识管理流程,还通过智能工具如AI问答、内容生成等,极大地提升了工作效率和决策质量。接下来,我们将以HelpLook AI知识库为…

【C/C++】C++类与对象基本概念(抽象与封装、构造函数、析构函数、静态、友元)

文章目录 七、类与对象基本概念抽象定义与声明访问控制类的实现与使用对象指针、this指针与对象引用构造函数析构函数拷贝构造函数 七、类与对象基本概念 抽象 抽象是相对,而非绝对的 在研究问题时,侧重点不同,可能会产生不同的抽象结果;解决…

解密低代码:持续更新的必要性与背后驱动力

在数字化转型的浪潮中,低代码(Low-Code)开发平台已经成为企业快速构建应用程序的重要工具。低代码平台通过图形化界面和少量手写代码,帮助开发者和业务人员在短时间内构建复杂应用。然而,随着技术的不断演进和业务需求…

【C#】Visual Studio代码格式化方法

1. 快捷键 选中内容后,先键入 ctrlk 再键入 ctrlf(注意:Visual Studio中标注两个快捷键的都是这样使用) 2. 工具栏 编辑 - 高级 - 设置选定内容的格式

mp3格式转换器免费版来袭,告别格式限制,音乐更自由!

当下,mp3格式可以说是音频文件的主流格式。无论是通过耳机、音箱还是车载音响,我们都在使用mp3格式来播放收听音乐。智能手机、平板电脑等移动设备上通常内置mp3播放器。mp3经常在视频剪辑中充当背景音乐和特效音效。 为什么mp3格式如此普遍&#xff1f…

PHP高效易用在线简单商城系统小程序源码

🚀高效易用的在线简单商城系统,让电商创业轻松启航🛍️ 🌈 一键开店,轻松上手 还在为繁琐的电商开店流程头疼吗?高效易用的在线简单商城系统,让你告别复杂设置,一键开启你的电商之旅…

leetcode日记(73)分隔链表

简单,但是链表问题容易犯错 第一次错误:每次遍历到小于x的节点移动到前面后都需要将a向后移动到移动后的该节点处,使得后面移动的节点都能移动到该节点后 第二次错误:看错了题目,需要从头开始遍历 第三次错误&#…

死抠细节!在ChatGPT的帮助下让论文精益求精!

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在撰写毕业论文的过程中,细节往往决定成败。无论是结构的合理性、论点的清晰度,还是语言的精准表达,每一个细节都影响着论文的最终质量。今天分享的内…

解决世界500强跨域跨境数据文件传输丢包严重、高延迟等问题

在当今全球化的商业环境中,大型跨国公司如世界500强企业,面临着跨地域数据传输的挑战。这些挑战包括数据包丢失、网络延迟、成本上升以及数据安全风险。传统的数据传输方法已难以满足这些企业对效率和安全性的需求。那么,如何为这些企业找到一…

虚拟机安装+xftp+xshell

1、VMware安装 下载VM,可以直接去官网下载,也可以直接提取我的网盘链接 通过百度网盘分享的文件:vmware 链接:百度网盘 请输入提取码 提取码:ms01 --来自百度网盘超级会员V2的分享 没有百度网盘会员的这里也有123…

vue3+vite项目中引入path模块报错

报错描述:Module "path" vite-browser-exter...h?t1700468860286:3 has been externalized for browser compatibility. Cannot access "path.resolve" in client code. 问题原因:vite 源码中设定了不允许在客户端代码中访问内置模…

STL中queue、stack的实现与容器适配器的讲解

目录 简介 栈(Stack) 队列(Queue) 实现 栈的实现 队列的实现 deque的讲解 deque的结构示意图 简介 栈(Stack)和队列(Queue)是两种基本的数据结构,在STL&#xff0…

【面积图表美化示例+讲解】

文章目录 效果预览:半透面积图:百分比堆积图: 效果预览: 半透面积图: 思路: 实际上是由两种类型的图表叠在一起,【面积图折线图】 处理: [1] 为了让面积图的边缘更加清晰&#xff…