参阅了一些书籍和网上的写法,在此Mark。

布尔表达式法

 module decode3_8_assign (data_in,data_out,enable);//算法实现
input [:] data_in;
input enable;
output [:] data_out;
reg data_a = 'b00000001;
assign data_out = (enable)?(~(data_a << data_in)):'b11111111;
endmodule

testbench:

 `timescale  ns/  ps
module decode3_8_assign_vlg_tst();
reg [:] data_in;
reg enable;
wire [:] data_out;
decode3_8_assign i1 (
.data_in(data_in),
.data_out(data_out),
.enable(enable)
);
initial
begin
enable = ;
data_in = ;
# enable = ;
# data_in = ;
# data_in = ;
# data_in = ;
# data_in = ;
# data_in = ;
# data_in = ;
# data_in = ;
# data_in = ;
end
endmodule

case语句法

 module decode3_8_case (data_in,data_out,enable);
input [:] data_in;
input enable;
output [:] data_out;
reg [:] data_out;
always @ (data_in or enable)
begin
if (enable)
case (data_in)
'b000 : data_out = 8'b11111110;
'b001 : data_out = 8'b11111101;
'b010 : data_out = 8'b11111011;
'b011 : data_out = 8'b11110111;
'b100 : data_out = 8'b11101111;
'b101 : data_out = 8'b11011111;
'b110 : data_out = 8'b10111111;
'b111 : data_out = 8'b01111111;
default : data_out = 'bxxxxxxxx;
endcase
else data_out = 'b11111111;
end
endmodule

testbench:

 `timescale  ps/  ps
module decode3_8_case_vlg_tst();
reg [:] data_in;
reg enable;
wire [:] data_out;
decode3_8_case i1 (
.data_in(data_in),
.data_out(data_out),
.enable(enable)
);
initial
begin
data_in = ;
enable = ;
# enable = ;
while (data_in <= 'b111)//for (i = 0;i <= 3'b111;i = i + )
begin
# data_in = data_in + ;
end
# $stop;
end
endmodule

for语句法

 module decode3_8_for (data_out,data_in,enable);
input [:] data_in;
input enable;
output [:] data_out;
reg [:] data_out;
integer i;
always @ (data_in or enable)
begin
if (enable)
begin
for (i = ;i < ;i = i + )
begin
if (data_in == i)
data_out[i] = ;
else
data_out[i] = ;
end
end
else
data_out = 'hff;
end
endmodule

testbench:

 `timescale  ps/  ps
module decode3_8_for_vlg_tst();
reg [:] data_in;
reg enable;
wire [:] data_out;
decode3_8_for i1 (
.data_in(data_in),
.data_out(data_out),
.enable(enable)
);
initial
begin
data_in = ;
enable = ;
# enable = ;
while (data_in <= 'b111)//for (i = 0;i <= 3'b111;i = i + )
begin
# data_in = data_in + ;
end
# $stop;
end
endmodule

if语句法

 `timescale  ps/  ps
module decode3_8_for_vlg_tst();
reg [:] data_in;
reg enable;
wire [:] data_out;
decode3_8_for i1 (
.data_in(data_in),
.data_out(data_out),
.enable(enable)
);
initial
begin
data_in = ;
enable = ;
# enable = ;
while (data_in <= 'b111)//for (i = 0;i <= 3'b111;i = i + )
begin
# data_in = data_in + ;
end
# $stop;
end
endmodule

testbench:

 `timescale  ns/  ps
module decode3_8_if_vlg_tst();
reg [:] data_in;
reg enable;
wire [:] data_out;
integer i;
decode3_8_if i1 (
.data_in(data_in),
.data_out(data_out),
.enable(enable)
);
initial
begin
data_in = ;
enable = ;
# enable = ;
for (i = ;i < ;i = i + )
begin
# data_in = data_in + ;
end
end
endmodule

如有错误还请指出,如有侵权还请告知,如需转载请注明出处!

本人博客:http://www.cnblogs.com/yllinux/

Verilog三线 - 八线译码器的更多相关文章

  1. Verilog八线 - 三线优先编码器设计(74LS148)

    百度百科_74LS148 if语句法 //8线-3线优先编码器设计(74LS148) // //EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO //0 | ...

  2. 8-3编码器,3-8译码器的verilog实现

    在数字系统中,由于采用二进制运算处理数据,因此通常将信息变成若干位二进制代码.在逻辑电路中,信号都是以高,低电平的形式输出.编码器:实现编码的数字电路,把输入的每个高低电平信号编成一组对应的二进制代码 ...

  3. Verilog学习笔记简单功能实现(四)...............译码器和编码器

    这里以简单的3-8译码器和8-3编码器为例: module decoder3_8(a,out); :]a; :]out; 'b1<<a;/*把最低位的1左移in位(根据in口输入的值)并赋 ...

  4. 用Verilog语言设计一个3-8译码器

    case语句 if_case语句 源码下载 Github >>

  5. FPGA作为从机与STM32进行SPI协议通信---Verilog实现 [转]

    一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...

  6. 03-组合逻辑电路设计之译码器——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线——普利斯队长精心奉献 课程目标:    1. 再次熟悉Quartus II工程的建立以及完整的FPGA开发流程 2. 以译码器为例学会简单组合逻辑电路设计 实验平台:无 实验原理: 组合逻辑, ...

  7. 对Verilog 初学者比较有用的整理(转自它处)

    *作者: Ian11122840    时间: 2010-9-27 09:04                                                              ...

  8. 写自己的第二级处理器(3)——Verilog HDL行为语句

    我们会继续上传新书<自己动手写处理器>(未公布),今天是第七章,我每星期试试4 2.6 Verilog HDL行为语句 2.6.1 过程语句 Verilog定义的模块一般包含有过程语句,过 ...

  9. 基于basys2用verilog设计多功能数字钟(重写)

    话不多说先上图         前言 自从学习FPGA以来,唯一做过的完整系统就是基于basys2得多功能数字表.记得当时做的时候也没少头疼,最后用时间磨出来了一个不是很完整的小系统,当时还是产生了满 ...

随机推荐

  1. asp.net模板页实现类似jquery中document.ready

    模板页先判断是否有方法DocumentReady,有的话就调用 1.模板页 <script type="text/javascript" language="jav ...

  2. Vue.js-----轻量高效的MVVM框架(六、Class与Style绑定)

    这个相对来说简单,看一遍代码就懂. 一.完整片段: <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  3. Checkstyle的配置详解

    Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一.Checkstyle提供了高可配置性,以便适 ...

  4. Silverlight 鼠标双击 事件

    Silverlight 双击事件例子 <UserControl x:Class="MouseDbClick.MainPage" xmlns="http://sche ...

  5. Object类中有哪些方法

    equals().hashCode().wait().notify().notifyAll().toString().clone().getClass().finalize()

  6. 分布式思想和rpc解决方案介绍

    1.RPC的诞生 RPC(Remote Procedure Call)远程过程调用,通过这个rpc协议,调用远程计算机上的服务,就像调用本地的服务一样. 不同的服务部署在不同的机器上面,并且在启动后在 ...

  7. python3+Appium自动化12-H5元素定位环境搭建

    前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...

  8. override javascript escape funcation

    var oldescape = window.escape; escape = function (sStr) { return oldescape(sStr).replace(/\+/g, '%2B ...

  9. bootstrap3-dialog:更强大、更灵活的模态框(封装好的模态框)

    用过bootstrap框架的同学们都知道,bootstrap自带的模态框用起来很不灵活,可谓鸡肋的很.但nakupanda开源作者封装了一个更强大.更灵活的模态框——bootstrap3-dialog ...

  10. Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验

    实验拓扑图: 实验环境: 在VMware workstation搭建虚拟环境,利用网络适配器的Nat和桥接模式模拟内网和外网环境. 实验过程中需要安装的工具包包括:vim unzip lrzsz ls ...