1 / 12
文档名称:

译码器--徐艺萍.doc

格式:doc   大小:21KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

译码器--徐艺萍.doc

上传人:wz_198614 2017/7/15 文件大小:21 KB

下载得到文件列表

译码器--徐艺萍.doc

相关文档

文档介绍

文档介绍:译码器--徐艺萍
译码器
译码是编码的逆过程,它的作用是将具有特定含义的二进制码转换成输出信号,简而言之就是对已编码的信息进行译码。具有译码功能的逻辑电路称为译码器。
译码器可分为两种类型,一种是将一系列代码转换成与之一一对应的有效信号。这种译码器称为唯一地址译码器,它常用于计算机对存储器单元地址的译码,即将每一个地址代码转换成一个有效信号,从而选中对应的单元。另一种是将一种代码转换成另一种代码,所以也称为代码转换器。
2线–4线译码器

,它具有n个输入端,2n个输出端和1个使能输入端。在使能输入端为有效电平时,对应每一组输入代码,只有其中一个输出端为有效电平,其余输出端则为相反电平。输出信号可以是高电平有效,也可以是低电平有效。
二进制译码器结构图
对于2线–4线译码器来说,它有2个信号输入端,4个输出端和1个输入使能端。2线–。
2线–4线译码器的真值表
从上面的真值表可以得出各输出端的逻辑表达式

通过FPGA来实现2线–4线译码器的功能有以下几种方案:
(1) 采用数据流描述方式来实现。
(2) 采用if…..else语句来实现。
(3) 采用case语句来实现。
(4) 采用嵌套条件运算符“? :”来实现。
(5) 采用门级描述方式来实现,这里用到了与门和非门,对于比较复杂的电路,一般不建议采用门级描述方式。

下面以第二种方案为例来进行FPGA的实现。
(1) 创建工程
在创建工程的时候,注意器件族类型、器件型号、综合工具和仿真器的选择,在这里选择的器件族类型(Device Family)是Virtex2P,器件型号(Device)是XC2VP30 ff896 -7,综合工具(Synthesis Tool)是XST (VHDL/Verilog),仿真器(Simulator)是ISE Simulator(VHDL/Verilog)。
(2) 设计输入
Verilog HDL 代码如下:
module decoder2_4(EN,A1,A0,Y3,Y2,Y1,Y0);
input EN,A1,A0;
output Y3,Y2,Y1,Y0;
reg Y3,Y2,Y1,Y0;
always @(EN or A1 or A0)
begin
if(~EN) {Y3,Y2,Y1,Y0}=4'b0000;
else if({A1,A0}==2'b00) {Y3,Y2,Y1,Y0}=4'b0001; else if({A1,A0}==2'b01) {Y3,Y2,Y1,Y0}=4'b0010; else if({A1,A0}==2'b10) {Y3,Y2,Y1,Y0}=4'b0100; else {Y3,Y2,Y1,Y0}=4'b1000;
end
endmodule
对于第一种方案的Verilog HDL 代码如下: module decoder2_4(EN,A1,A0,Y3,Y2,Y1,Y0); input EN,A1,A0;
output Y3,Y2,Y1,Y0;
wire Y3,Y2,Y1,Y0;
assign Y3=EN&A1&A0;
assign Y2=EN&A1&(~A0);
assign Y1=EN&(~A1)&A0;
assign Y0=EN&A1&A0;
endmodule
对于第三种方案的Verilog HDL 代码如下: module decoder2_4(EN,A1,A0,Y3,Y2,Y1,Y0); input EN,A1,A0;
output Y3,Y2,Y1,Y0;
reg Y3,Y2,Y1,Y0;
always @(EN or A1 or A0)
begin
if(~EN) {Y3,Y2,Y1,Y0}=4'b0000;
else
case({A1,A0})
2'b00 : {Y3,Y2,Y1,Y0}=4'b0001;
2'b01 : {Y3,Y2,Y1,Y0}=4'b0010;
2'b10 : {Y3,Y2,Y1,Y0}=4'b0100;
2'b11 : {Y3,Y2,Y1,Y0}=4'b1000;
endcase
end