文档详情

verilog串并转换并串转换.doc

发布:2025-05-04约1.38万字共22页下载文档
文本预览下载声明

1.

设计名称:38译码器带使能端的

主要功能:

实现38译码功能,并且在使能段处于低电平是输出设计框图:

设计代码:

moduledecoder3_8(a,b,ena);

input[2:0]a;

inputena;

output[7:0]b;

reg[7:0]b;

always@(ena,a)

if(!ena)

begin

b=8

end

else

begin

case(a)

3b000:b=8

3b001:b=8

3b010:b=8

3b011:b=8

3b100:b=8

3b101:b=8

3b110:b=8

3b111:b=8

default:b=8

endcase

end

endmodule

仿真代码:

`timescale1ns/1ns

moduletb;

reg[2:0]a;

regena;

wire[7:0]b;

initialbegin

a=3b000;

ena=1b0;

#50;

ena=1b1;

#50;

a=3b001;

#50;

a=3b010;

#50;

a=3b011;

#50;

a=3b100;

#50;

a=3b101;

#50;

a=3b110;

#50;

a=3b111;

#50;

$stop;

end

decoder3_8udecoder3_8(

.a(a),

.ena(ena),

.b(b)

);

endmodule

仿真结果:

辅助说明:

当ena为低电平时,无论a为何值,总是输当ena为高电平时,输出即随a的数值变化而变化,当a为001时,b的值变当a为010时,b的值变这与设计时的功能是一致的。

_______________________________________________________________________________

2.

设计名称:83编码器带使能端的和优先级

主要功能:

实现83编码功能,并且在使能段处于低电平是输出为000,同时最高位的优先级最高

设计框图:

设计代码:

moduleundecoder8_3(a,b,ena);

input[7:0]a;

inputena;

output[3:0]b;

reg[3:0]b;

always@(ena,a)

if(!ena)

begin

b=3b000;

end

else

if(a[7])b=3b111;

else

if(a[6])b=3b110;

else

if(a[5])b=3b101;

else

if(a[4])b=3b100;

else

if(a[3])b=3b011;

else

if(a[2])b=3b010;

else

if(a[1])b=3b001;

else

if(a[0])b=3b000;

elseb=3b000;

endmodule

仿真代码:

moduletb;

reg[7:0]a;

regena;

wire[2:0]b;

initialbegin

a=8

ena=1b0;

#50;

ena=1b1;

#50;

a=8

#50;

a=8

#50;

a=8

#50;

a=8

#50;

a=8

#50;

显示全部
相似文档