百度百科_74LS148

if语句法

  //8线-3线优先编码器设计(74LS148)
//
//EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO
//0 | 0 x x x x x x x | 0 0 0 0 1
//0 | 1 0 x x x x x x | 0 0 1 0 1
//0 | 1 1 0 x x x x x | 0 1 0 0 1
//0 | 1 1 1 0 x x x x | 0 1 1 0 1
//0 | 1 1 1 1 0 x x x | 1 0 0 0 1
//0 | 1 1 1 1 1 0 x x | 1 0 1 0 1
//0 | 1 1 1 1 1 1 0 x | 1 1 0 0 1
//0 | 1 1 1 1 1 1 1 0 | 1 1 1 0 1
//0 | 1 1 1 1 1 1 1 1 | 1 1 1 1 0
//1 | x x x x x x x x | 1 1 1 1 1 module encoder_83 (din, EI, GS, EO, dout);
input [:] din; //编码输入端data_in,低电平有效
input EI; //使能输入端EI(选通输入端),EI为 0 时芯片工作,即允许编码
output [:] dout; //编码输出端data_out
output GS; //片优先编码输出端,优先编码器工作工作状态标志GS,低电平有效
output EO; //使能输出端EO(选通输出端)
reg [:] dout;
reg GS, EO;
always @(din or EI)
if(EI) begin dout <= 'b111; GS <= 1; EO <= 1; end //所有输出端被锁存在高电平
else if (din[] == ) begin dout <= 'b000; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b001; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b010; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b011; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b100; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b101; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b110; GS <= 0; EO <= 1; end
else if (din[] == ) begin dout <= 'b111; GS <= 0; EO <= 1; end
else if (din == 'b11111111) begin dout <= 3'b111; GS <= ; EO <= ; end //芯片工作,但无编码输入
else begin dout <= 'b111; GS <= 1; EO <= 1; end //消除锁存器(latch)
endmodule //EI = 0 表示允许编码,否则所有输出端被封锁在高电平(控制芯片工作)
//EO = 0 表示电路工作,但无编码输入(用于级联)
//GS = 0 表示电路工作,且有编码输入(判断输入端是否有输入)

testbench:

 `timescale  ps/  ps
module encoder_83_vlg_tst();
reg EI;
reg [:] din;
wire EO;
wire GS;
wire [:] dout;
encoder_83 i1 (.EI(EI), .EO(EO), .GS(GS), .din(din), .dout(dout));
initial
begin
EI = ;
din = 'b11111111;
# EI = ;
# din = 'b01010101;
# din = 'b10101010;
# din = 'b11010101;
# din = 'b11101010;
# din = 'b11110101;
# din = 'b11111010;
# din = 'b11111101;
# din = 'b11111110;
# din = 'b11111111;
end
endmodule

case语句法

   //8线-3线优先编码器设计(74LS148)
//
//EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO
//0 | 0 x x x x x x x | 0 0 0 0 1
//0 | 1 0 x x x x x x | 0 0 1 0 1
//0 | 1 1 0 x x x x x | 0 1 0 0 1
//0 | 1 1 1 0 x x x x | 0 1 1 0 1
//0 | 1 1 1 1 0 x x x | 1 0 0 0 1
//0 | 1 1 1 1 1 0 x x | 1 0 1 0 1
//0 | 1 1 1 1 1 1 0 x | 1 1 0 0 1
//0 | 1 1 1 1 1 1 1 0 | 1 1 1 0 1
//0 | 1 1 1 1 1 1 1 1 | 1 1 1 1 0
//1 | x x x x x x x x | 1 1 1 1 1 module encoder_83_case (din, EI, GS, EO, dout);
input [:] din; //编码输入端data_in,低电平有效
input EI; //使能输入端EI(选通输入端),EI为 0 时芯片工作,即允许编码
output [:] dout; //编码输出端data_out
output GS; //片优先编码输出端,优先编码器工作工作状态标志GS,低电平有效
output EO; //使能输出端EO(选通输出端)
reg [:] dout;
reg GS, EO;
always @(din or EI)
if(EI)
begin dout <= 'b111; GS <= 1; EO <= 1; end //所有输出端被锁存在高电平
else
casez (din) //建议用casez语句,casez把z/?匹配成任意。 casex把z/?/x匹配成任意,x为仿真初态
'b0??????? : begin dout <= 3'b000; GS <= ; EO <= ; end //无关项建议用?表示,?是高阻态的另一种表示。?,z,Z是等价的
'b10?????? : begin dout <= 3'b001; GS <= ; EO <= ; end
'b110????? : begin dout <= 3'b010; GS <= ; EO <= ; end
'b1110???? : begin dout <= 3'b011; GS <= ; EO <= ; end
'b11110??? : begin dout <= 3'b100; GS <= ; EO <= ; end
'b111110?? : begin dout <= 3'b101; GS <= ; EO <= ; end
'b1111110? : begin dout <= 3'b110; GS <= ; EO <= ; end
'b11111110 : begin dout <= 3'b111; GS <= ; EO <= ; end
'b11111111 : begin dout <= 3'b111; GS <= ; EO <= ; end //芯片工作,但无编码输入
default : begin dout <= 'b111; GS <= 1; EO <= 1; end //消除锁存器(latch)
endcase
endmodule //EI = 0 表示允许编码,否则所有输出端被封锁在高电平(控制芯片工作)
//EO = 0 表示电路工作,但无编码输入(用于级联)
//GS = 0 表示电路工作,且有编码输入(判断输入端是否有输入)

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

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

Verilog八线 - 三线优先编码器设计(74LS148)的更多相关文章

  1. 基于Verilog HDL 的数字时钟设计

    基于Verilog HDL的数字时钟设计 一.实验内容:     利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...

  2. 从YouTube改版看“移动优先”——8个移动优先网站设计案例赏析

    2011年,Luke Wroblewski大神提出了移动优先的设计理念.在当时看来这无疑是一个打破行业常规的新型设计原则.而在移动互联网大行其道的今天,谁遵守移动优先的设计理念,设计出最好的移动端网站 ...

  3. 『TensorFlow』降噪自编码器设计

    背景简介 TensorFlow实现讲解 设计新思路: 1.使用类来记录整个网络: 使用_init_()属性来记录 网络超参数 & 网络框架 & 训练过程 使用一个隐式方法初始化网络参数 ...

  4. 『TensorFlow』单&双隐藏层自编码器设计

    计算图设计 很简单的实践, 多了个隐藏层 没有上节的高斯噪声 网络写法由上节的面向对象改为了函数式编程, 其他没有特别需要注意的,实现如下: import numpy as np import mat ...

  5. 吴裕雄 PYTHON 神经网络——TENSORFLOW 双隐藏层自编码器设计处理MNIST手写数字数据集并使用TENSORBORD描绘神经网络数据2

    import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data os.envi ...

  6. 吴裕雄 PYTHON 神经网络——TENSORFLOW 单隐藏层自编码器设计处理MNIST手写数字数据集并使用TensorBord描绘神经网络数据

    import os import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from tensorflow ...

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

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

  8. Verilog设计技巧实例及实现

    Verilog设计技巧实例及实现 1 引言 最近在刷HDLBits的过程中学习了一些Verilog的设计技巧,在这里予以整理.部分操作可能降低代码的可读性和Debug的难度,请大家根据实际情况进行使用 ...

  9. Verilog HDL 使用规范(一)

    本博文参考:<大规模逻辑设计指导书>,对于写出规范的代码,培养良好的代码风格颇有裨益. wire and register 一个reg变量只能在一个always语句中赋值: 这个说明至关重 ...

随机推荐

  1. mysql+gtid主从同步

    安装mysql  yum install mysql-community-client-5.7.17-1.el6.x86_64.rpm mysql-community-common-5.7.17-1. ...

  2. mongodb在windows下安装

    下载地址:https://www.mongodb.com/download-center/community 我下载的是zip版本 新建目录:data |_db |_log cmd到所下载的mongo ...

  3. Smarty保留变量信息

    对php里边的超级全局数组变量信息的使用 例如:$_GET.$_POST.$_SESSION.$_COOKIE.$_REQUEST.$_SERVER.$_ENV.$GLOBALS.$_FILES.常量 ...

  4. 转 深入解析:一主多备DG环境,failover的实现过程详解 以及 11g 容灾库可以在线添加tempfile. 以及 11g 容灾库可以在线添加logile.

    https://yq.aliyun.com/articles/229600 核心,就是11g通过datafille_scn 号来追日志,而不是日志序列号来追日志. 加快standby switchov ...

  5. robotframework自动化测试之测试数据

    相信很多人在做自动化测试的时候都会遇到一个问题,就是用例不能重复执行,比如名称不能重复,手机号码不能重复等等问题,或者在测试用例执行完后通过操作数据库把相关的数据删除: 那么怎么样让我们的测试用例能重 ...

  6. 17082 两个有序数序列中找第k小(优先做) O(logn)

    17082 两个有序数序列中找第k小(优先做) 时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC;VC Description 已 ...

  7. 性能测试工具LoadRunner15-LR之负载生成器(Load Generators)

    简介 对场景进行设计后,需要对负载生成器进行管理和配置.Load Generators是运行脚本的负载引擎(相当于加压机)主要功能是生成虚拟用户进行负载,在默认情况下使用本地的负载生成器来运行脚本. ...

  8. pat1038. Recover the Smallest Number (30)

    1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...

  9. pat1016. Phone Bills (25)

    1016. Phone Bills (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A long-di ...

  10. 上传文件,使用FormData进行Ajax请求,jsoncallback跨域

    通过传统的form表单提交的方式上传文件: <form id= "uploadForm" action= "http://localhost:8080/cfJAX_ ...