二选一逻辑

模块fn_sw功能:
当sel为0时y是a和b的与;当sel为1时y是a和b的异或。

Verilog代码:

使用assign语句块实现二选一功能

module fn_sw(a,b,sel,y);
//定义端口属性
input        a;
input        b;
input        sel;
output        y;//输入输出的关系assign        y=sel?(a^b):(a&b);//这里的问号冒号语句,含义是:如果sel为1,则y等于(a^b),否则等于(a&b)
//问号冒号语句实现二选一endmodule

使用always语句块实现二选一功能:

module fn_sw(a,b,sel,y);
//定义端口属性
input        a;
input        b;
input        sel;
output        y;reg           y;    //always语句块里赋值的变量需要是reg型//always语句块
always@(a or b or sel)   //@后面的(a or b or sel)是敏感变量,组合逻辑输入,里面的输入变量要写全
beginif(sel==1)begin    //if else语句 实现二选一y<=a^b;        //reg型变量赋值用带箭头的等号endelse beginy<=a&b;         //reg型变量赋值用带箭头的等号end
endendmodule

测试代码testbench

//testbench of fn_sw
module fn_sw_tb;
reg                     a,b,sel;
wire                    y;
fn_sw       fn_sw(.a(a),.b(b),.sel(sel),.y(y));//异名例化,前面加.
//改变输入
initial begina<=0;b<=0;sel<=0;#10     a<=0;b<=0;sel<=1;#10     a<=0;b<=1;sel<=0;#10     a<=0;b<=1;sel<=1;#10     a<=1;b<=0;sel<=0;#10     a<=1;b<=0;sel<=1;#10     a<=1;b<=1;sel<=0;#10     a<=1;b<=1;sel<=1;#10     $stop;
endendmodule

多路选择逻辑

模块fn_sw功能:
当sel为00时y是a和b的与;

当sel为01时Y是a和b的或;

当sel为10时y是a和b的异或;

当sel为11时y是a和b的同或;

Verilog代码:

使用case语句实现多路选择功能

`timescale 1ns/10ps
module fn_sw(a,b,sel,y);
//定义端口属性
input        a;
input        b;
input        sel;
output        y;reg           y;    //always语句块里赋值的变量需要是reg型//always语句块
always@(a or b or sel)
begincase(sel)                 //case语句块2'b00:begin y<=a&b;end   //2'b指的是2bit变量2'b01:begin y<=a|b;end2'b10:begin y<=a^b;end2'b11:begin y<=~(a^b);endendcase
endendmodule

测试代码testbench

//-----testbench of fn_sw_4
module fn_sw_4_tb;
reg[3:0]       absel;
wire           y;fn_sw_4 fn_sw_4(.a(absel[0]),.b(absel[1]),.sel(absel[3:2]),.y(y));intial beginabsel<=0;//absel赋初值#200  $stop;//过200ns结束Verilog系统任务,仿真结束
end
always #10 absel<=absel+1;//每过10ns对absel进行加一
//always #遍历逻辑值endmodule

Verilog——多路选择器逻辑设计相关推荐

  1. 数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(一)

    文章目录 1.Verilog语言的设计思想和可综合特性 2. 组合电路的设计 2.1 数字加法器 2.2 数据比较器 2.3 数据选择器 2.4 数字编码器 2.4.1 3位二进制8线-3线编码器 2 ...

  2. verilog 多路选择器 multiplexer

    verilog 多路选择器 multiplexer 自己写了一个多路选择器,写的端口数量太多,所以是用来看行为级仿真的. // An highlighted block module multiple ...

  3. Verilog 多路选择器(MUX)

    Verilog 多路选择器(MUX) 一般的遇到的情况都是单独的output 信号,对于inout信号,我们怎么做多路选择器呢? 1. inout.input.output的不同 2.inout电路 ...

  4. FPGA零基础学习:基于FPGA的多路选择器设计(附代码)

    FPGA零基础学习:基于FPGA的多路选择器设计(附代码) 大侠好,欢迎来到FPGA技术江湖.本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的& ...

  5. HDLBits答案(7)_Verilog多路选择器

    Verilog多路选择器 HDLBits链接 定义 多路选择器(Multiplexer)简称多路器,它是一个多输入.单输出的组合逻辑电路,在数字系统中有着广泛的应用.它可以根据地址码(选择码)的不同, ...

  6. 多路选择器(4选1)

    Verilog 多路选择器 实验内容:做一个4选1的mux,并且进行波形仿真 和2选1的mux对比,观察资源消耗的变化 1.MUX4-1 实验代码部分: module mux4_1 (IN0 , // ...

  7. 【数字逻辑设计】Logisim构建多路选择器

    多路选择器在数字逻辑设计中用途广泛,其逻辑表达式是: f = s ′ x 1 + s x 2 f = s'x1 + sx2 f=

  8. 数字逻辑---头歌实训作业---多路选择器设计与应用(Logisim)

    第1关:2选1选择器设计 如有任何不解或者想要最终实验代码,可评论区喊话哦,希望我的答案对你有帮助,点个关注再走吧,感谢!!! 本关卡最终答案: 任务描述 本关任务:在Logisim中绘制2选1多路选 ...

  9. 数字逻辑-头歌实训作业-多路选择器设计与应用(Logisim)

    准备工作 首先要下载Logisim,我开始使用是真的痛苦,老师也不讲 中文版下载,使用码云下载地址 把那两个logisim-ita-cn-20200118.exe,logisim-ita-cn-202 ...

最新文章

  1. 理解RESTful架构
  2. 手把手教你怎样免费注冊国际顶级域名
  3. 微型计算机的硬盘电源,自己动手估算电脑的功率 | 微型计算机官方网站 MCPlive.cn...
  4. CNN模型复杂度(FLOPs、MAC)、参数量与运行速度
  5. 实现一个div在浏览器水平居中
  6. excel导入mysql语句_求助:用SQL语句从Excel将数据导入到SQL数据库
  7. 中打开终端_macOS中轻松实现Finder当前目录中快速打开终端
  8. 【免费】某机构最新3980元机器学习/大数据课程高速下载,限量200份
  9. opencv-api getStructuringElement
  10. Objective-C 的 self 和 super 详解
  11. ATL--创建简单的ATL之dll工程,添加“ATL简单对象”类的参数说明
  12. 词法分析 有穷自动机
  13. Leetcode 863.二叉树中所有距离为K的结点
  14. noip2013day1模拟赛
  15. 通达oa 2013 php解密,通达OA 2011-2013 通杀GETSHELL修复补丁
  16. 俄罗斯方块C4droid
  17. java 常用前端框架_Java Web前端到后台常用框架介绍
  18. Ubuntu下codeblocks汉化
  19. Python源码阅读(一)
  20. mysql还原数据库非常慢_mysql还原数据库慢

热门文章

  1. xctf 攻防世界-forgot writeup
  2. 差分驱动芯片AM26LS31使用总结
  3. 汉王科技牵手中科红旗 手写输入实现“大满贯”
  4. 美联储的官员们,都在坐等出事!
  5. 学习笔记——改改host,轻松登录dropbox!(For Windows)
  6. 招商银行专业版,交易记录下载到本地是乱码怎么办
  7. TIME_WAIT 问题解决
  8. 自动驾驶测试相关论文推荐
  9. Windows 2008 R2配置IIS环境搭建网站(二)
  10. win和linux双系统引导