Verilog (二) multiplexer and decoder
2024-10-18 07:22:33
1 mutiplexer 数据选择器
1) one-bit wide 2-1 mux
wire dout = sel? din1 : din0; // conditional continuous and wire assignment
2) 4-1 mux
module mux4_1(sel, din0, din1, din2, din3, dout);
input [:] sel;
input din0, din1, din2, din3;
output dout;
reg dout; always @ (sel or din0 or din1 or din2 or din3)
begin
case(sel)
'b00: dout = din0;
'b01: dout = din1;
'b10: dout = din2;
'b11: dout = din3;
default: dout = din0;
endcase
end endmodule
3) two-bit wide 8-1 mux (case statement)
sel | din7 | din6 | din5 | din4 | din3 | din2 | din1 | din0 | dout |
000 | XX | XX | XX | XX | XX | XX | XX | DD | din0 |
001 | XX | XX | XX | XX | XX | XX | DD | XX | din1 |
010 | XX | XX | XX | XX | XX | DD | XX | XX | din2 |
011 | XX | XX | XX | XX | DD | XX | XX | XX | din3 |
100 | XX | XX | XX | DD | XX | XX | XX | XX | din4 |
101 | XX | XX | DD | XX | XX | XX | XX | XX | din5 |
110 | XX | DD | XX | XX | XX | XX | XX | XX | din6 |
111 | DD | XX | XX | XX | XX | XX | XX | XX | din7 |
2 decoder 解码器/译码器
n 个输入 => 2n 个输出
1) 3-8 binary decoder
module decoder3_8(A, Y);
input [:] A;
output [:] Y;
reg [:] Y; always @ (A)
case (A)
: Y = 'b00000001;
: Y = 'b00000010;
: Y = 'b00000100;
: Y = 'b00001000;
: Y = 'b00010000;
: Y = 'b00100000;
: Y = 'b01000000;
: Y = 'b10000000;
default: Y = 'b0;
endcase endmodule
decoder3_8
2) 3-6 binary decoder with enable
module decoder3_6(A, EN, Y);
input EN;
input [:] A;
output [:] Y;
reg [:] Y; always @ (EN or A)
case ({EN, A})
'b1000: Y = 6'b000001;
'b1001: Y = 6'b000010;
'b1010: Y = 6'b000100;
'b1011: Y = 6'b001000;
'b1100: Y = 6'b010001;
'b1101: Y = 6'b100000;
default: Y = 'b0;
endcase endmodule
decoder3_6_en
最新文章
- 代码的坏味道(10)——发散式变化(Divergent Change)
- Buffer类
- SQL Server 查询分解
- Unity学习疑问记录之触屏
- .gitignore失效问题解决
- Navicat for MySQL Mac 破解版
- JavaScript的一些常见误区
- 网站商务通链接快速标识v1.0.js
- Flexbox属性可视化指南
- C++ STL它vector详细解释
- Node.js博客搭建
- Less合并
- SQL注入之Sqli-labs系列第一篇
- iframe相关小结
- UnicodeDecodeError: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128)
- C++ STL Maps
- Jmeter——参数化的9种方法
- nginx添加多站点
- MySQL 设置慢查询为200ms
- TortoiseSVN文件夹及文件图标不显示解决方法(兼容Window xp、window7)
热门文章
- 不要迷恋那些没技术含量的Linux发行版
- php中的不常用数组函数(一)(数组中元素的键和值对调 array_flip())
- percona 5.6升级到5.7相关error及解决方法
- Intellij idea开发Hadoop MapReduce程序
- RadioButton 自定义控件
- 2015年第6本(英文第5本):Harry Potter 1 哈利波特与魔法石
- 安卓开发_慕课网_ViewPager实现Tab(App主界面)
- android在Data目录内置可删除的APP
- 【读书笔记】iOS-开发技巧-UILabel内容模糊的原因
- 干货-iOS、mac开源项目及库,以后我也会持续更新。