Verilog学习笔记4:二选一逻辑

news2024/9/21 2:50:26

代码1: 

`timescale 1ns/10ps

module fn_sw(
			a,
			b,
			sel,
			y);
input a,b,sel;
output y;
assign y=(sel)?a^b:a&b;

endmodule

module fn_sw_tb;

reg A,B,sel;
wire Y;
fn_sw fn_sw(
		.a(A),
		.b(B),
		.sel(sel),
		.y(Y)
		);

initial begin 
				sel<=0;A<=0;B<=0;
		#10		sel<=0;A<=0;B<=1;
		#10		sel<=0;A<=1;B<=0;
		#10		sel<=0;A<=1;B<=1;
		#10		sel<=0;A<=0;B<=0;
		
		#10		sel<=1;A<=0;B<=1;
		#10		sel<=1;A<=1;B<=0;
		#10		sel<=1;A<=1;B<=1;
		#10		sel<=1;A<=0;B<=0;
		#10		$stop;
end
endmodule

实验波形:

 代码2:always实现:

`timescale 1ns/10ps

module fn_sw(
			a,
			b,
			sel,
			y);
input a;
input b;
input sel;
output reg y;
//assign y=(sel)?a^b:a&b;

always@(a or b or sel)
if(sel)begin
	y<=a^b;
end
else
begin
	y<=a&b;
end

endmodule

module fn_sw_tb;

reg A,B,sel;
wire YY;
fn_sw fn_sw(
		.a(A),
		.b(B),
		.sel(sel),
		.y(YY)
		);

initial begin 
				sel<=0;A<=0;B<=0;
		#10		sel<=0;A<=0;B<=1;
		#10		sel<=0;A<=1;B<=0;
		#10		sel<=0;A<=1;B<=1;
		#10		sel<=0;A<=0;B<=0;
		
		#10		sel<=1;A<=0;B<=1;
		#10		sel<=1;A<=1;B<=0;
		#10		sel<=1;A<=1;B<=1;
		#10		sel<=1;A<=0;B<=0;
		#10		$stop;
end
endmodule

实验波形:

 

 代码3:always+case

`timescale 1ns/10ps

module fn_sw_case(
			a,
			b,
			sel,
			y);
input a;
input b;
input[1:0] sel;
output reg y;
//assign y=(sel)?a^b:a&b;

always@(a or b or sel)
begin
	case(sel)
	2'b00:begin y<=a&b; end
	2'b01:begin y<=a|b; end
	2'b10:begin y<=a^b; end
	2'b11:begin y<=~(a^b); end
	endcase
end
endmodule

module fn_sw_case_tb;

reg A,B;
reg[1:0] sel;
wire YY;
fn_sw_case fn_sw_case(
		.a(A),
		.b(B),
		.sel(sel),
		.y(YY)
		);

initial begin 
				sel<=2'b00;A<=0;B<=0;     
		#10		sel<=2'b00;A<=0;B<=1;     
		#10		sel<=2'b00;A<=1;B<=0;     
		#10		sel<=2'b00;A<=1;B<=1;     
		#10		sel<=2'b00;A<=0;B<=0;     
		                              
		#10		sel<=2'b01;A<=0;B<=1;     
		#10		sel<=2'b01;A<=1;B<=0;     
		#10		sel<=2'b01;A<=1;B<=1;     
		#10		sel<=2'b01;A<=0;B<=0;  
		
		#10		sel<=2'b10;A<=0;B<=1;     
		#10		sel<=2'b10;A<=1;B<=0;     
		#10		sel<=2'b10;A<=1;B<=1;     
		#10		sel<=2'b10;A<=0;B<=0;  
		
		#10		sel<=2'b11;A<=0;B<=1;     
		#10		sel<=2'b11;A<=1;B<=0;     
		#10		sel<=2'b11;A<=1;B<=1;     
		#10		sel<=2'b11;A<=0;B<=0; 
		
		#10		$stop;                
end                                   
endmodule                             
                                      

小结

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

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

相关文章

【编程语言 · C语言 · 结构与结构】

【编程语言 C语言 结构与结构】https://mp.weixin.qq.com/s/NENaQ8wmO690g3HqNNO0cQ

Go语言程序设计(十五)接口

一、接口的概念 简单地说&#xff0c;Interface是一组Method的组合,可以通过Interface来定义对象的一组行为。如果某个对象实现了某个接口的所有方法&#xff0c;就表示它实现了该“接口”&#xff0c;无须显式地在该类型上添加接口说明。 假设定义了两个对象Teacher和…

SQL-每日一题【550.游戏玩法分析Ⅳ】

题目 Table: Activity 编写一个 SQL 查询&#xff0c;报告在首次登录的第二天再次登录的玩家的比率&#xff0c;四舍五入到小数点后两位。换句话说&#xff0c;您需要计算从首次登录日期开始至少连续两天登录的玩家的数量&#xff0c;然后除以玩家总数。 查询结果格式如下所示…

MYSQL的基本数据类型和建库

1.创建数据库&#xff0c;删除数据库&#xff0c;查询创建数据的语句&#xff0c;使用数据库&#xff0c;查询当前默认的数据库以及使用的编码方式校验规则 2.数字&#xff0c;文本&#xff0c;日期 在一章表中定义多个字段&#xff0c;要使用今天提到的所有的数据类型 1创建数…

10款设计师常用的APP页面设计软件

APP页面设计是APP实施过程中的关键步骤&#xff0c;APP页面设计是不是别具一格&#xff0c;取决于消费者对APP最直观的视觉效果分辨。 要创建一个令人惊讶的APP页面设计&#xff0c;一个高效率的APP界面设计软件是不可缺少的。 本文列出10款最流行的APP界面设计软件&#xff…

VScode搭建C/C++开发环境

目录 1.VScode是什么&#xff1f; 2.VScode的下载和安装 2.1下载和安装 下载&#xff1a; 安装&#xff1a; 2.2环境的介绍 环境介绍&#xff1a; 安装中文版插件 &#xff1a; 3.VScode配置C/C开发环境 3.1下载和配置MinGW-w64 编译器套件 下载&#xff1a; 配置M…

每日浅读SLAM论文——简析LIO-SAM

文章目录 Overview雷达里程计IMU预积分GPS回环代码结构解析 今天讲一篇经典的LIO&#xff08;LiDAR-Inertial Odometry&#xff09;SLAM论文——LIO-SAM。 雷达里程计由于其高鲁棒性、较低成本&#xff08;二维雷达不贵、三维雷达价格也在降、IMU不太贵&#xff09;&#xff0c…

【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!

感谢滚动君大佬提供的思路&#xff0c;但是此方法只适用于微信小程序 app端之所以不能用的关键原因在于不能找到resourcePath原始路径&#xff0c;不像小程序会提供一个路径区分哪些文件来自组件哪些文件来自页面&#xff0c;如果不做区分&#xff0c;那么页面栈就会超载&…

EasyCVR视频融合平台国标级联后推送不了通道是什么原因?

EasyCVR视频融合平台基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台支持海量视频汇聚管理&#xff0c;可支持多协议、多类型的设备接入&#xff0c;并能对设备进行分级、分组管理&#xff0c;并支持权限、角色分配&#xff0c;属于功能全…

电子时钟制作(瑞萨RA)(9)----读取DHT11温湿度数据

概述 本篇介绍如何驱动DH11湿度传感器同时实现当前串口数据打印。 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。 硬件准备 首先需要准备一个开发板&#xff0c;这里我准备的是芯片型号R7FA2E1A72DFL的开发板&#xff1a; 视频教程 https://www…

从零实现深度学习框架——注意力机制

引言 本着“凡我不能创造的&#xff0c;我就不能理解”的思想&#xff0c;本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架&#xff0c;该框架类似PyTorch能实现自动求导。 &#x1f4a1;系列文章完整目录&#xff1a; &#x1f449;点此&#x1f448; 要深入理解…

网络数据包的监听与分析——IP数据报文分析

1. 抓包工具下载 x下面是一个IP数据报的抓包软件——IPtool的蓝奏云下载链接 https://wwix.lanzoue.com/iaGpy11klpnc 2. iptool使用 下载解压之后&#xff0c;右击以管理员身份运行&#xff0c;打开该exe文件即可 然后点击绿色运行就开始捕包了 随便点一个包进去进行分析就可…

Java文档

API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是Java提供的基本编程接口&#xff08;java提供的类还有相关方法&#xff09;。中文在线文档&#xff1a;Java 8 中文版 - 在线API手册 - 码工具 (matools.com) Java语言提供了大量…

Java项目 仿天猫商城系统(springboot+mybatis+mysql+maven+jsp)

基于springbootmybatismysqlmavenjsp仿天猫商城系统 一、系统介绍1、系统主要功能&#xff1a;2.涉及技术框架&#xff1a; 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能&#xff1a; 项目主要参考天猫商城的购物流程&#xff1a;用户从注册开始&…

浅谈线段树

1.前言 Oi-Wiki上的线段树 同步于 c n b l o g s cnblogs cnblogs发布。 如有错误&#xff0c;欢迎各位 dalao 们指出。 注&#xff1a;本篇文章个人见解较多&#xff0c;如有不适&#xff0c;请谅解。 前置芝士 1.二叉树的顺序储存 2.线段树是什么&#xff1f; 线段树…

“量贩零食”热潮袭来:真风口还是假繁荣?

以前只听过量贩式KTV&#xff0c;现在“量贩零食店”也出现在了大街小巷。 高考结束后&#xff0c;家住武汉的花花频繁逛起了量贩零食店。这类店把各种零食集合在一起销售&#xff0c;用低价来换取高销量&#xff0c;主打一个性价比。店里的散装零食即便按斤售卖&#xff0c;也…

蛋白组学 差异蛋白分析 富集分析 go kegg

生信学习day1-蛋白组分析 蛋白质组差异分析的三个R包 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/448479536Introduction to DEP (bioconductor.org)http://www.bioconductor.org/packages/release/bioc/vignettes/DEP/inst/doc/DEP.html#lfq-based-dep-analysis浅谈蛋白…

阿里云coluder认证训练营开班!

在这个充满机遇和挑战的时代里&#xff0c;云计算已经成为推动企业创新和发展的关键技术。而作为云计算人才培训领域的领军企业&#xff0c;摩尔狮致力于培养更多优秀的云技术人才&#xff0c; 所以摩尔狮联合阿里云为大家打造了免费的云计算入门课程——Clouder认证集训营&…

全方位了解VR全景展示与制作

引言&#xff1a; 虚拟现实&#xff08;VR&#xff09;技术正在以惊人的速度改变我们的生活方式和体验方式。其中&#xff0c;VR全景展示与制作作为虚拟现实的重要应用之一&#xff0c;为用户提供了身临其境的视听体验。 一、了解VR全景展示与制作 1.VR全景展示 VR全景展示是…

JDK,JRE,JVM的区别

1.JVM JVM&#xff0c;也叫java虚拟机&#xff0c;用来运行字节码文件&#xff0c;可将字节码翻译为机器码&#xff0c;JVM是实现java跨平台的关键&#xff0c;可以让相同的java代码在不同的操作系统上运行出相同的结果。 2.JRE JRE&#xff0c;也叫java运行时环境&#xff…