Verilog (二) multiplexer and decoder
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
Verilog (二) multiplexer and decoder的更多相关文章
- ARM中的总线
ARM中的总线用于不同部件之间的通信.有两种不同类型的设备连接到总线:ARM处理器,它是总线的主设备,拥有对总线的仲裁权,可以通过同一总线主动发起数据传输请求:外围器件,是总线的从设备,在总线上是被动 ...
- 【Netty】(9)---Netty编解码器
Netty编解码器 在了解Netty编解码之前,先了解Java的编解码: 编码(Encode)称为序列化, 它将对象序列化为字节数组,用于网络传输.数据持久化或者其它用途. 解码(Decode)称为反 ...
- NodeJS学习笔记 (29)二进制解码-string_decoder(ok)
原文:https://github.com/chyingp/nodejs-learning-guide 自己过一遍: 模块简介 string_decoder模块用于将Buffer转成对应的字符串.使用 ...
- System Verilog基础(二)
这一篇笔记主要记录Procedural,Process,Task and function,Interface和Communication中值得注意的点. 1.Procedural 写testbenc ...
- Verilog MIPS32 CPU(二)-- Regfiles
Verilog MIPS32 CPU(一)-- PC寄存器 Verilog MIPS32 CPU(二)-- Regfiles Verilog MIPS32 CPU(三)-- ALU Verilog M ...
- 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title
[第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...
- 在SublimeText3中搭建Verilog开发环境记录(二)
接上文 SublimeText3中搭建Verilog开发环境记录(一) 在实现了基础功能后,继续添加插件,让功能更为完善: 快速创建代码模块(snippet) Ctrl+鼠标左键实现模块跳转 通过iV ...
- CRC校验原理和verilog实现方法(二)
1 前言 在 前面的博客 CRC校验原理和verilog实现方法(一) 中,介绍了CRC校验的原理和手动计算过程.本文说一下我在学习CRC校验FPGA实现的一点心得体会. 2 线性反馈移位寄存器 ...
- Verilog学习笔记简单功能实现(二)...............全加器
先以一位全加器为例:Xi.Yi代表两个加数,Cin是地位进位信号,Cout是向高位的进位信号.列表有: Xi Yi Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 ...
随机推荐
- php中的字符串常用函数(一) strpos() 子字符首次出现的位置
strpos($str, $needle); 1.返回$needle在$str首次出现的位置.(大小写敏感). 2.从php5开始$needle支持多字符.php4只能用单个字符. 3.能找到$nee ...
- Webform(内置对象-Response与Redirect、QueryString传值、Repeater删改)
一.内置对象(一)Response - 响应请求对象1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response对象只提供了一个数据集合cookie, ...
- DOM LOAD测试笔记
DOM时间:1823ms LOAD时间:4912ms COMP时间:5427ms 1585 4757 5650 1859 3487 3910 1600 4648 5099 1610 4428 4878 ...
- Echarts图表控件使用总结1(Line,Bar)
问题篇(详解):http://www.cnblogs.com/hanyinglong/p/4708337.html 1.前言 a.在系统开发过程中可能会使用到图表控件,一个好的图标控件可以使我们的网站 ...
- margin和padding对行内元素的影响
这个是在面试的时候,面试官问我的一个小问题 自己没有考虑过inline元素设置margin和padding的问题 学习的过程记录下来 1)inline元素的高度是由元素的内容决定的(字体的大小和行高) ...
- AJAX编程-封装ajax工具函数
即 Asynchronous [e'sɪŋkrənəs] Javascript And XML,AJAX 不是一门的新的语言,而是对现有技术的综合利用.本质是在HTTP协议的基础上以异步的方式与服务器 ...
- javascript宿主对象之window.history
window.historys属性允许我们操作同一个浏览器回话中的已访问页面,例如我们可以看到在这之前我们浏览页面的数量: window.history.length 由于隐私保护,我们无法获取这些页 ...
- 一台电脑存放多个git账户的多个rsa秘钥
未命名.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;marg ...
- 【读书笔记】iOS网络-HTTP-URL百分号编码
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ty ...
- Android Activity使用拾遗
一.onWindowFocusChanged 有时我们需要测量一个Activity多长时间才能显示出来,那么在代码中打点计时的时机选在哪儿呢?在onCreate和onResume执行完成后,Activ ...