用一片CD4532构成8-3线编码器与用两片CD4532构成16线-4线优先编码器
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线优先编码器相关推荐
- CD4532 8-3线优先编码器以及应用
CD4532 8-3线优先编码器以及应用 目标 一片CD4532构成8-3线编码器 两片CD4532串行构成16-4线译码器 一.一片CD45232 设计思路 采用逻辑电路的行为级建模,参考CD453 ...
- 【五线谱】五线谱的线与间 ( 五线谱中的 第N线与第N间 | 五线谱上的 上加N线与上加N间 | 五线谱下的 下加N线与下加N间 | 高音谱号下加一线 等同于 低音谱号上加一线 )
文章目录 一.五线谱中的 线 ( 第 N 线 ) 与 间 ( 第 N 间 ) 二.五线谱上的 线 ( 上加 N 线 ) 与 间 ( 上加 N 间 ) 三.五线谱下的 线 ( 下加 N 线 ) 与 间 ...
- Linux主机通过直连线直连,【IT基础】网线的直连线与交叉线之间的区别
小续 嵌入式开发的运行环境是目标板,而开发环境是宿主机.因此需要把宿主机中经过编译之后的可执行文件下载到目标板上去.需要注意的是,这里所讲的下载是下载到目标机中的SDRAM 常见的下载方式有网络下载( ...
- AD16画线时如何切换90°、45°、任意角度画线模式
在绘图界面选择画线后,使用"shift+空格"可切换不同的画线模式.切换过程中会有90°模式.45度模式.任意角度模式等,在这些模式中可使用空格键在进行细分切换. 1.90°模式 ...
- ansys如何删除线_绘画新手不懂如何用ps提取线稿?教你用PS提取自己喜欢的线稿!...
绘画新手不懂如何用ps提取线稿?初学者如何自学绘画?自学板画难吗?怎样才能学习好绘画?想必这些都是绘画初学者们经常在想的问题吧,就是不知道如何才能学习好绘画,然后绘画出自己想要画的东西 那么今天灵猫课 ...
- 总线制和多线制示意图_主机总线线 总线制和多线制示意图
消防主机总线不能上电是什么原因? 一般回路线出现短路,开路,接地故障,还有回路卡损坏都会引起报总线故障的,排除方法:怀疑是短路故障引起的可用以下方法,在主机回路接线端把回路线的正负极线拆下,在回路线不 ...
- 绘制自己组合的k线图_短线投资者必备的四种双K线组合抄底技巧,次次选中黑马股,精准率超高...
(本文由公众号越声投研(yslcwh)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) 股市里有一句话叫做:"新手死于追高,老手死于抄底",讲的是股市里大多数 ...
- linux usb hcd nak,第16章通用串行总线接口(USB)mpc83xx中文手册.doc
第16章通用串行总线接口(USB)mpc83xx中文手册 第16章 通用串行总线接口 本章介绍MPC8349E的通用串行总线接口(USB).该接口支持许多工业标准.有关这些复杂的工业标准的说明已经超出 ...
- python画相关系数矩阵图_pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))...
//2019.07.23 1.箱形图,又称为盒式图,一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布特征的比较,它主要包含五个基础数据:中位数,两个上下分位数以及上下边缘线数据 其中的一 ...
最新文章
- 如何在虚拟主机上开发php定时任务,GoDaddy 虚拟主机定时任务怎么设置? | Godaddy美国主机中文指南...
- 【MIT Sam Hopkins教授】如何读论文?How to Read a Paper
- linux 定时清理tomcat日志
- [译]Front-end-Developer-Interview-Questions
- 织梦(dedecms)当前位置{dede:field name='position' /}修改
- python怎么索引json中的值_使用Python在JSON中查找值
- ios沙箱模式开启_iOS沙盒篇
- 用Python识别验证码
- XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复
- 今年Java面试必问的这些技术面,赶快收藏备战金九银十!
- Python代码实现验证码识别
- CommandArgument 与 CommandName 属性
- 很强大的上网行为管理终端软件-云子可信-一键禁止访问视频网站
- 国内各大短视频平台去水印接口,新年限时免费使用。
- c# rar解压大小_C#解压RAR压缩文件
- 爬取腾讯视频网站数据
- 加密狗软加密方案离线绑定与解绑
- 肖锰:浪潮GS开发平台学习札记(一)——服务器端安装
- 食用香精香料行业现状调研及趋势分析报告
- 非常适合新手的视频[ps照片美容]高清淅在线