2 - 组合逻辑代码设计和仿真

用问号冒号语句实现二选一:

用 always 语句块实现组合逻辑:

用 if-else 实现二选一:

//2021.11.17 lyw
//2 choose 1 logic design
`timescale 1ns/10ps
module fn_sw (a,b,sel,y
);
input       a;
input       b;
input       sel;
output      y;//use 'assign' to implement combinatorial logic
//assign      y=sel?(a^b):(a&b);//use 'always' to implement combinatorial logic
reg         y;
always @(a or b or sel) beginif(sel == 1)beginy <= a^b;endelse beginy <= a&b;end
endendmodule//------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

二选一仿真波形:

四选一组合逻辑实现:

四选一代码:

关键:用 case 语句实现多路选择,以及用 always # 语句遍历逻辑值。

//2021.11.17 lyw
//4 choose 1
`timescale 1ns/10ps
module fn_sw_4 (a,b,sel,y
);input       a;input       b;input[1:0]  sel;output      y;reg         y;always @(a or b or sel) begincase (sel)2'b00: begin y=a&b; end2'b01: begin y=a|b; end2'b10: begin y=a^b; end2'b11: begin y=~(a^b); endendcaseendendmodule//-----testbench of fn_sw_4---------
module fn_sw_4_tb;
reg[3:0]        absel;
wire            yy;
fn_sw_4 fn_sw_4 (.a(absel[0]),.b(absel[1]),.sel(absel[3:2]),.y(yy)
);
initial beginabsel<=0;#200    $stop;
endalways #10 absel<=absel+1;endmodule

四选一仿真波形:


PS:

学习内容总结自网络,主讲教师为北京交通大学李金城老师。

2 - 组合逻辑代码设计和仿真相关推荐

  1. 3 - 组合逻辑代码设计和仿真

    3 - 组合逻辑代码设计和仿真 补码转换 代码: //2021.11.18 lyw //Complement conversion `timescale 1ns/10ps module comp_co ...

  2. 【Verilog零基础入门-边看边练】学习笔记——第三讲 组合逻辑代码设计和仿真(补码转换和七段译码逻辑设计)(二)

    二.七段译码逻辑设计 所需软件 Verilog编程软件:Lattice Diamond(3.11.0.396.4_Diamond_x64) Verilog仿真软件:ModelSim SE-64 10. ...

  3. 1 - 基本逻辑门代码设计和仿真

    1 - 基本逻辑门代码设计和仿真 设计流程的改变: 反相器: 八位反相器: 与非门: 四位与非门: 位逻辑操作运算符: 多位宽电路符号图画法(打斜杠写数字): 代码结构: 时间作者 module 功能 ...

  4. Verilog RTL 代码设计示例

    实验一.做一个4选1的mux,并且进行波形仿真和2选1的mux对比,观察资源消耗的变化 四选一mux代码如下: RTL视图如下: 波形仿真如下: 2选1的mux资源消耗情况: 4选1的mux资源消耗情 ...

  5. Verilog RTL 代码设计新手上路

    1.      做一个4选1的mux,并且进行波形仿真 和2选1的mux对比,观察资源消耗的变化: 实验分析:4选1的mux实际上就是在2选1的mux上进行拓展,选用2位的控制信号控制4位输入信号的选 ...

  6. 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1doc.doc...

    基于 Matlab 的捷联惯导算法设计及仿真1doc 基于 Matlab 的捷联惯导算法设计及仿真1 严恭敏 西北工业大学航海学院,西安 (710072) E-mail:yangongmin@163. ...

  7. verilog扰码器设计及仿真

    本设计使用verilog语言实现扰码器设计与仿真 本工程在quartusII下实现并在modelsim下进行仿真 设计中包括加扰器和解扰器模块.仿真测试模块等. 下面是工程截图: 下面是modelsi ...

  8. coreldraw的线条怎么变成圆头_智能设计 | 建模仿真(3):力学仿真

    原标题:智能设计 | 建模&仿真(3):力学仿真 智能设计| 建模& 仿真(3) :力学仿真 刘肖健 浙江工业大学 1. 案例描述 画出"磁场的形态",大致如下图所 ...

  9. Qt设计机器人仿真控制器——按键控制机器人关节转动

    1.引言及本文简介 在上两篇博客里,Jungle介绍了Qt键盘事件,并在小程序中应用Qt键盘事件监测按键输入: Qt键盘事件(一)--检测按键输入及解决无法响应方向键问题 Qt键盘事件(二)--长按按 ...

最新文章

  1. jenkins+ant+git+android搭建笔记
  2. 瑞士的迷人风光(转)
  3. USB接口芯片的选型参考(Z)
  4. 前端学习(1888)vue之电商管理系统电商系统之在sessionStrorage中保存按钮的激活状态
  5. 网页防篡改测试报告(2008版)
  6. Windows配置MinGW环境变量
  7. 物联网领域不断扩展,ATT很“兴奋”
  8. Dynamics 365Online 模板(Template)可以下载了
  9. Yii路由之LimeSurvey去掉烦人的/index.php/*
  10. 备战面试日记(4.2.13)- (框架.Spring【十三】之Spring IOC 源码finishBeanFactoryInitialization())
  11. 计算机视觉-实验四(相机模型与参数标定)
  12. bzoj 1864 三色二叉树
  13. 使用DAX(Power BI)的移动平均线
  14. 数据挖掘实战:员工离职预测(训练赛)
  15. 基于k-means的大数据客户细分 - python 数据挖掘
  16. springboot项目在外部tomcat运行出现的问题
  17. plc串口通讯 qt_QT与PLC通信
  18. 银行卡支付之连连支付
  19. 年月日、年积日、简化儒略日、GPS周之间相互转换(C++)
  20. 在2020年开发像TikTok这样的移动应用需要花多少钱?

热门文章

  1. [网摘收藏]10款超实用的服务器监控工具和软件
  2. LoadRunner运行场景报错处理方式
  3. 原生支持Linux的音乐软件,Linux 下五款轻量级音乐播放器(开源)
  4. Python 编码规范(Google)
  5. 如何在Excel/WPS表格中批量查询顺丰快递信息?
  6. 获取浏览器原生滚动条宽度的方法
  7. HDC1080传感器使用
  8. 领慧立芯LH32M0SXX:压力变送器,测温及称重的单片解决方案
  9. 安卓手机来电防火墙_iPhone 超酷炫的来电闪光灯,安卓手机也可以玩了。
  10. 北京化工大学 计算机专硕 缺额,北京化工大学2020年硕士研究生调剂工作办法