第三节:多路选择器

2024-04-27 17:12
文章标签 选择器 多路 第三节

本文主要是介绍第三节:多路选择器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.二选一数据选择器,要求如下:

【注】 always语句块里赋值的变量需要是reg型

module fn_sw(a,b,sel,y);
input a,b,sel;
output y;
assign y = (sel==0)?(a&b):(a^b);
endmodule
`timescale 1ns/10ps
module fn_sw_tb;
reg a,b,sel;
wire y;fn_sw fn_sw(.a(a),.b(b),.sel(sel),.y(y)
);initial begin
a<=0;b<=0;sel<=0;
#10
a<=1;b<=1;sel<=0;
#10
a<=0;b<=1;sel<=1;
#10
a<=1;b<=0;sel<=1;
#10
a<=0;b<=0;sel<=0;
#10
$stop;
endendmodule

【注】 我们在上述代码中使用了assign,其实也可以尝试使用一下always

即将下面代码

assign y = (sel==0)?(a&b):(a^b);

更换为

reg y;//因为下面要改变y了,所以声明reg y;

always @(a or b or sel)//敏感列表(即括号中任意值改变,则执行下述代码)

begin

        if(sel==0)

                 begin

                        y<=(a&b);

                end

        else if(sel==1)

                begin

                        y<=(a^b);

                end//如果只有一个语句,就不用begin end块,为了养成良好习惯,还是写上;

end

显然,这个题使用assign相当于always更简单,但是有些题用assign是实现不了的,比如下一题; 

2. 四选一选择器

module fn_sw(a,b,sel,y);
input a,b;
input[1:0] sel;
output y;
reg y;
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
`timescale 1ns/10ps
module fn_sw_tb;
reg a,b;
reg[1:0] sel;
wire y;fn_sw fn_sw(.a(a),.b(b),.sel(sel),.y(y)
);initial begina <= 0; b <= 0; sel <= 2'b00; // 初始化为00#10a <= 1; b <= 1; sel <= 2'b00; // 然后变为00#10a <= 0; b <= 1; sel <= 2'b01; // 然后变为01#10a <= 1; b <= 0; sel <= 2'b01; // 再次变为01#10a <= 0; b <= 0; sel <= 2'b00; // 最后回到00#10$stop; // 停止仿真
endendmodule

 这其实是2位的sel来选择四种状态,所以是一个四选一选择器;

参考链接:精准空降 

这篇关于第三节:多路选择器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941066

相关文章

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

必须记住的CSS选择器

选择器(selector)是CSS中很重要的概念,所有HTML语言中的标记都是通过不同的CSS选择器进行控制的。用户只需要通过选择器对不同的HTML标签进行控制,并赋予各种样式声明,即可实现各种效果。  1. * * { margin: 0; padding: 0; }   星号选择器用于选取页面中的所有元素,可用于快速清除所有元素的 margin 与 padding,但最好只在

多路h265监控录放开发-(12)完成全部开始录制和全部停止录制代码

xviewer.h 新增 public:void StartRecord();//126 开始全部摄像头录制void StopRecord();//126 停止全部摄像头录制 xviewer.cpp 新增//视频录制static vector<XCameraRecord*> records;//126void XViewer::StartRecord() //开始全部摄像头录

AI 大模型企业应用实战(09)-LangChain的示例选择器

1 根据长度动态选择提示词示例组 1.1 案例 根据输入的提示词长度综合计算最终长度,智能截取或者添加提示词的示例。 from langchain.prompts import PromptTemplatefrom langchain.prompts import FewShotPromptTemplatefrom langchain.prompts.example_selector

选择器的基本分类和扩展选择器

div:行级标签  2个div之间会换行 span:块级标签 p:行级标签:2个p之间会换行,且有个空行

CSS属性选择器学习记录(4)

目录 1、CSS 属性 选择器 1.1、CSS [attribute|=value] 选择器  1.2、实例 2、具有特定属性的HTML元素样式 3、属性选择器 4、属性和值选择器 5、属性和值的选择器 - 多值 6、表单样式 1、CSS 属性 选择器         顾名思义,CSS 属性选择器就是指可以根据元素的属性以及属性值来选择元素。 1.1、CSS [a

iOS圆形颜色选择器

最近公司做一款彩色灯,涉及到app控制灯的颜色,这样就催生了这个需求:做一个颜色选择器。 做完后的效果如下: 实现源码:https://github.com/hpy8804/ColorPickerDemo

多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能

xviewer.h public:XViewer(QWidget* parent = Q_NULLPTR);//编辑摄像机void SetCam(int index);//121 public slots:void AddCam(); //新增摄像机配置120void SetCam(); //121void DelCam(); //121private:Ui::XViewerCla

【APP移动端性能测试】第三节.性能测试工具GT和常见的性能测试点(上)

文章目录 前言一、性能测试工具GT      1.1 性能测试工具GT的基本介绍      1.2 性能测试工具GT的基本使用二、CPU性能测试      2.1 CPU说明      2.2 CPU测试步骤      2.3 监控结果保存到目录文件三、内存性能测试      3.1 内存知识点介绍      3.2 常见的内存问题和现象      3.3 内存测试步骤四、流畅度性

uniapp 封装的插件集合 包括:无限级选择器,TAB滑动切换,圆形进度条,上拉加载动画,动画使用,通用弹窗等。

uniapp 封装的插件集合 包括:无限级选择器,TAB滑动切换,圆形进度条,上拉加载动画,动画使用,通用弹窗等。 作者:神夜 QQ:564379992 交流群:942832552 插件下载地址:https://gitee.com/sywlgzs/uniapp-componentsuniapp 插件集合大全: uniapp 封装的插件集合 包括:无限级选择器,TAB滑动切换,圆形进度条,上