VerilogHDL程序设计与仿真作业1:

——用一片CD4532构成8-3线编码器与用两片CD4532构成16线-4线优先编码器

文章目录

  • VerilogHDL程序设计与仿真作业1:
      • ——用一片CD4532构成8-3线编码器与用两片CD4532构成16线-4线优先编码器
    • 一、实验目的
    • 二、一片CD4532构成8-3线编码器
      • 1、设计思路
      • 2、实现代码
      • 3、测试代码
      • 4、仿真
    • 三、用两片CD4532构成16线-4线优先编码器
      • 1、设计思路
      • 2、实现代码
      • 3、测试代码
      • 4、仿真

一、实验目的

  • 一片CD4532构成8-3线编码器
  • 两片CD4532串行构成16-4线译码器

二、一片CD4532构成8-3线编码器

1、设计思路

  • 采用逻辑电路的行为级建模,参考CD4532的功能表,运用always,casex,else if语句实现CD4532的功能。

  • 逻辑符号与引脚图

  • CD4532的功能表

  • 附加输出信号的状态与含义

2、实现代码

//文件名称:CD4532.v
//fuchaoxinHUST11052020
module CD4532(EI,I,Y,GS,EO);
input EI;
input [7:0] I;
output reg [2:0] Y;
output reg GS,EO;
/*说明:
输入端:EI使能信号,I7到I0代表输入的数,且I7的优先级别最高,I0的优先级别最低;
输出端:GS、EO用于级联,Y则代表编码后的二进制数;
EI=0 GS=0 EO=0,不工作;
EI=1 GS=0 EO=1,工作,但输入无效;
EI=1 GS=1 EO=0,工作,输入有效;
EI=1 GS=1 EO=1,不可能出现。
*/
always @(*)//全信号敏感if(EI==0) beginGS=0;EO=0;Y[2:0]=3'b000;endelse begin//EI=1GS=1;EO=0;casex(I[7:0])//x为任意项 输入有效情况8'b1xxxxxxx: Y[2:0]=3'b111;8'b01xxxxxx: Y[2:0]=3'b110;8'b001xxxxx: Y[2:0]=3'b101;8'b0001xxxx: Y[2:0]=3'b100;8'b00001xxx: Y[2:0]=3'b011;8'b000001xx: Y[2:0]=3'b010;8'b0000001x: Y[2:0]=3'b001;8'b00000001: Y[2:0]=3'b000;default begin//EI=1GS=0;EO=0;Y[2:0]=3'b000;// I[7:0]=8'b0000000 输入无效情况endendcaseend
endmodule

3、测试代码

//文件名称:Test_CD4532.v
//fuchaoxinHUST20201105
`timescale 10ns/1ns
module Test_CD4532;
reg EI;
reg [7:0] I;
wire [2:0] Y;
wire GS,EO;CD4532 U0(EI,I,Y,GS,EO);//实例化元件
initial $monitor($time,":\t I=%b, EI=%b, EO=%b, GS=%b, Y=%b \n", I, EI, EO, GS, Y); //监视器的显示内容
initial begin
//使能信号为0时EI=0; I=8'b1111_1111;#1EI=0; I=8'b0111_1111;#1EI=0; I=8'b0011_1111;#1
//使能信号为1时EI=1; I=8'b1111_1111;#1EI=1; I=8'b0111_1111;#1EI=1; I=8'b0011_1111;#1$stop;//停止模拟仿真
end
endmodule

4、仿真

  • 波形

  • 监控器

三、用两片CD4532构成16线-4线优先编码器

1、设计思路

(1)当 E I 2 EI_2 EI2​=0时, E O 2 EO_2 EO2​= E I 1 EI_1 EI1​= E O 1 EO_1 EO1​=0, G S 2 = G S 1 = G S = 0 GS_2=GS_1=GS=0 GS2​=GS1​=GS=0,两个芯片都被禁止编码,无编码输出;

(2)当 E I 2 EI_2 EI2​=1时,且当左边 I I II II号芯片有任何一个输入信号有效时,则使 E O 2 = E I 1 = E O 1 = 0 EO_2=EI_1=EO_1=0 EO2​=EI1​=EO1​=0, I I I号芯片被禁止编码,所有输出均为0, G S 2 = G S = 1 GS_2=GS=1 GS2​=GS=1, G S 1 = 0 GS_1=0 GS1​=0, L 3 = 1 L_3=1 L3​=1,信号 L L L输出8到15。

​ 而当左边 I I II II号芯片无有效输入信号时(例如8‘b00000000),则使 E O 2 = E I 1 = 1 EO_2=EI_1=1 EO2​=EI1​=1, I I II II号芯片所有输出均为0(除了 E O 2 EO_2 EO2​), I I I号芯片才被允许编码(一片CD4532编码过程参考前文),这说明左边的 I I II II号芯片优先级比右边的 I I I号芯片要高,而对于每片芯片来说,优先级: I 7 > I 1 I_7>I_1 I7​>I1​,则对于这种两片CD4532级联的解法,优先级: A 15 > A 0 A_{15}>A_0 A15​>A0​。

  • 采用自顶向下的方式,综合行为级建模门级描述数据流建模实现用两片CD4532构成16线-4线优先编码器。

  • 原理图

2、实现代码

//文件名称:CD4532.v
//文件名称:CD4532_2.v
//fuchaoxinHUST11052020
module CD4532(EI,I,Y,GS,EO);
input EI;
input [7:0] I;
output reg [2:0] Y;
output reg GS, EO;
/*说明:
输入端:EI使能信号,I7到I0代表输入的数,且I7的优先级别最高,I0的优先级别最低;
输出端:GS、EO用于级联,Y则代表处理后的二进制数;
EI=0 GS=0 EO=0,不工作;
EI=1 GS=0 EO=1,工作,但输入无效;
EI=1 GS=1 EO=0,工作,输入有效;
EI=1 GS=1 EO=1,不可能出现。
*/
always @(*)//全信号敏感if(EI==0) beginGS=0;EO=0;Y[2:0]=3'b000;endelse begin//EI=1GS=1;EO=0;casex(I[7:0])//x为任意项 输入有效情况8'b1xxxxxxx: Y[2:0]=3'b111;8'b01xxxxxx: Y[2:0]=3'b110;8'b001xxxxx: Y[2:0]=3'b101;8'b0001xxxx: Y[2:0]=3'b100;8'b00001xxx: Y[2:0]=3'b011;8'b000001xx: Y[2:0]=3'b010;8'b0000001x: Y[2:0]=3'b001;8'b00000001: Y[2:0]=3'b000;default begin//EI=1GS=0;EO=0;Y[2:0]=3'b000;// I[7:0]=8'b0000000 输入无效情况end   endcaseend
endmodule
//单片CD4532module CD4532_2(EI,A,L,GS,EO);
input EI;
input [15:0] A;  //[15:0] A对应的是II号芯片的[7:0] I号芯片到I的[7:0] I
output [3:0] L; //L[3]=GS_2 L[2]=Y_2[2]||Y_1[2] L[1]=Y_2[1]||Y_1[1] L[0]=Y_2[0]||Y_1[0]
output GS, EO; //GS=GS_1||GS_2 EO=EO_1
//逻辑或 || 全部使用 or(output,input,···)进行处理
/*说明:
输入端:EI使能信号,A15到A0代表输入的数,且A15的优先级别最高,A0的优先级别最低;
输出端:GS、EO用于级联,L则代表处理后的四位二进制数;
将两片连接后看成一片:
EI=0 GS=0 EO=0,不工作;
EI=1 GS=0 EO=1,工作,但输入无效;
EI=1 GS=1 EO=0,工作,输入有效;
EI=1 GS=1 EO=1,不可能出现。
*///中间变量定义
wire [7:0] I_1,I_2;
wire [2:0] Y_1,Y_2;
wire GS_1,GS_2,EO_2;//EI_1=EO_2 两者共用一个变量 已有EI=EI_2 EO=EO_1//输入部分
genvar i;
for(i=7;i>=0;i=i-1) assign I_1[i] = A[i];
for(i=15;i>=8;i=i-1) assign I_2[i-8] = A[i];//先后执行两片CD4532 得到输出量EO 中间变量GS_1 GS_2 EO_2 Y[]
CD4532 C2(EI,I_2,Y_2,GS_2,EO_2);//2片 EI_2=EI EI是input
CD4532 C1(EO_2,I_1,Y_1,GS_1,EO);//1片 EI_1=EO_2 EO_2由第2片得到 EO=EO_1 EO是output//输出部分
or G0(L[0],Y_1[0],Y_2[0]);
or G1(L[1],Y_1[1],Y_2[1]);
or G2(L[2],Y_1[2],Y_2[2]);
assign L[3] = GS_2; //L[3]直接由GS_2决定
or G3(GS,GS_1,GS_2);//G3门输出GS//先输入,经过CD4532处理后得到第一次输出,再次用OR门处理得到输出值endmodule
//用两片CD4532构成16线-4线优先编码器

3、测试代码

//文件名称:Test_CD4532_2.v
//fuchaoxinHUST20201105
`timescale 10ns/1ns
module Test_CD4532_2;
reg EI;
reg [15:0] A;
wire [3:0] L;
wire GS,EO;CD4532 U1(EI,A,L,GS,EO);//实例化元件
initial $monitor($time,":\t A=%b, EI=%b, EO=%b, GS=%b, L=%b \n", A, EI, EO, GS, L); //监视器的显示内容
initial begin
//使能信号为0EI=0;A=16'b0000_0000_0000_0000;#5EI=0;A=16'b0000_0000_0000_0000;#5EI=0;A=16'b0000_0000_0000_0000;#5
//使能信号为1EI=1;A=16'b1111_0000_0000_0000;#5EI=1;A=16'b0001_0000_0000_0000;#5EI=1;A=16'b0000_0001_0000_0000;#5  $stop;//停止测试
end
endmodule

4、仿真

  • 波形

  • 监视器

部分图源来自华科数电mooc ↩︎

用一片CD4532构成8-3线编码器与用两片CD4532构成16线-4线优先编码器相关推荐

  1. CD4532 8-3线优先编码器以及应用

    CD4532 8-3线优先编码器以及应用 目标 一片CD4532构成8-3线编码器 两片CD4532串行构成16-4线译码器 一.一片CD45232 设计思路 采用逻辑电路的行为级建模,参考CD453 ...

  2. 【五线谱】五线谱的线与间 ( 五线谱中的 第N线与第N间 | 五线谱上的 上加N线与上加N间 | 五线谱下的 下加N线与下加N间 | 高音谱号下加一线 等同于 低音谱号上加一线 )

    文章目录 一.五线谱中的 线 ( 第 N 线 ) 与 间 ( 第 N 间 ) 二.五线谱上的 线 ( 上加 N 线 ) 与 间 ( 上加 N 间 ) 三.五线谱下的 线 ( 下加 N 线 ) 与 间 ...

  3. Linux主机通过直连线直连,【IT基础】网线的直连线与交叉线之间的区别

    小续 嵌入式开发的运行环境是目标板,而开发环境是宿主机.因此需要把宿主机中经过编译之后的可执行文件下载到目标板上去.需要注意的是,这里所讲的下载是下载到目标机中的SDRAM 常见的下载方式有网络下载( ...

  4. AD16画线时如何切换90°、45°、任意角度画线模式

    在绘图界面选择画线后,使用"shift+空格"可切换不同的画线模式.切换过程中会有90°模式.45度模式.任意角度模式等,在这些模式中可使用空格键在进行细分切换. 1.90°模式 ...

  5. ansys如何删除线_绘画新手不懂如何用ps提取线稿?教你用PS提取自己喜欢的线稿!...

    绘画新手不懂如何用ps提取线稿?初学者如何自学绘画?自学板画难吗?怎样才能学习好绘画?想必这些都是绘画初学者们经常在想的问题吧,就是不知道如何才能学习好绘画,然后绘画出自己想要画的东西 那么今天灵猫课 ...

  6. 总线制和多线制示意图_主机总线线 总线制和多线制示意图

    消防主机总线不能上电是什么原因? 一般回路线出现短路,开路,接地故障,还有回路卡损坏都会引起报总线故障的,排除方法:怀疑是短路故障引起的可用以下方法,在主机回路接线端把回路线的正负极线拆下,在回路线不 ...

  7. 绘制自己组合的k线图_短线投资者必备的四种双K线组合抄底技巧,次次选中黑马股,精准率超高...

    (本文由公众号越声投研(yslcwh)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) 股市里有一句话叫做:"新手死于追高,老手死于抄底",讲的是股市里大多数 ...

  8. linux usb hcd nak,第16章通用串行总线接口(USB)mpc83xx中文手册.doc

    第16章通用串行总线接口(USB)mpc83xx中文手册 第16章 通用串行总线接口 本章介绍MPC8349E的通用串行总线接口(USB).该接口支持许多工业标准.有关这些复杂的工业标准的说明已经超出 ...

  9. python画相关系数矩阵图_pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))...

    //2019.07.23 1.箱形图,又称为盒式图,一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布特征的比较,它主要包含五个基础数据:中位数,两个上下分位数以及上下边缘线数据 其中的一 ...

最新文章

  1. 如何在虚拟主机上开发php定时任务,GoDaddy 虚拟主机定时任务怎么设置? | Godaddy美国主机中文指南...
  2. 【MIT Sam Hopkins教授】如何读论文?How to Read a Paper
  3. linux 定时清理tomcat日志
  4. [译]Front-end-Developer-Interview-Questions
  5. 织梦(dedecms)当前位置{dede:field name='position' /}修改
  6. python怎么索引json中的值_使用Python在JSON中查找值
  7. ios沙箱模式开启_iOS沙盒篇
  8. 用Python识别验证码
  9. XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复
  10. 今年Java面试必问的这些技术面,赶快收藏备战金九银十!
  11. Python代码实现验证码识别
  12. CommandArgument 与 CommandName 属性
  13. 很强大的上网行为管理终端软件-云子可信-一键禁止访问视频网站
  14. 国内各大短视频平台去水印接口,新年限时免费使用。
  15. c# rar解压大小_C#解压RAR压缩文件
  16. 爬取腾讯视频网站数据
  17. 加密狗软加密方案离线绑定与解绑
  18. 肖锰:浪潮GS开发平台学习札记(一)——服务器端安装
  19. 食用香精香料行业现状调研及趋势分析报告
  20. 非常适合新手的视频[ps照片美容]高清淅在线

热门文章

  1. GBase 8s数据库的备份与恢复-基于ontape
  2. 在生词本查单词的译文
  3. c语言小游戏 三子棋,C语言实现简单的三子棋小游戏
  4. linux下拷贝文件的时候出现权限不够
  5. ORA-12560: TNS: 协议适配器错误怎么回事?
  6. Facebook Litho:高性能安卓UI的构建框架
  7. SM2 国密加密加签操作工具
  8. canvas将上传的图片文件绘制一个空心圆并往里加个图片,解决canvas绘制jpeg,jpg图片背景变黑为题
  9. TCP协议规定2MSL等待的原因
  10. 分布式ID的生成方案