当前位置:   article > 正文

实验报告:3-8译码器设计与仿真_3-8线译码器quartus仿真

3-8线译码器quartus仿真

1. 引言

本实验旨在通过Verilog编程设计和仿真一个3-8译码器电路,并对其进行功能验证。实验中使用了Quartus 18.1进行设计和仿真。

2. 设计原理

3-8译码器是一种常见的数字逻辑电路,用于将3个输入信号转换为8个输出信号。根据输入信号的不同组合,只有一个输出信号会处于逻辑高电平状态,其余输出信号均处于逻辑低电平状态。

3. 设计步骤

3.1 电路图设计

首先,在Logsim软件中绘制了3-8译码器的电路图,如下所示:

3.2 逻辑真值表

根据电路图设计的3-8译码器,列出了其逻辑真值表,如下所示:

ABC01234567
00010000000
00101000000
01000100000
01100010000
10000001000
10100000100
11000000010
11100000001

3.3 Verilog设计

根据3-8译码器的电路图和逻辑真值表,采用Verilog编程设计了3-8译码器模块。

module  decoder3_8 
( 
input   wire        in1 ,   //输入信号in1 
input   wire        in2 ,   //输入信号in2 
input   wire        in3 ,   //输入信号in3  6      
output  reg   [7:0] out     //输出信号out 
);  //out:根据3个输入信号选择输出对应的8bit out信号     
always@(*)  
//使用"{}"位拼接符将3个1bit数据按照顺序拼成一个3bit数据 
if({in1, in2, in3} == 3'b000) 
out = 8'b0000_0001; 
else    if({in1, in2, in3} == 3'b001)          
out = 8'b0000_0010; 
else    if({in1, in2, in3} == 3'b010)          
out = 8'b0000_0100; 
else    if({in1, in2, in3} == 3'b011)          
out = 8'b0000_1000; 
else    if({in1, in2, in3} == 3'b100)          
out = 8'b0001_0000; 
else    if({in1, in2, in3} == 3'b101)          
out = 8'b0010_0000; 
else    if({in1, in2, in3} == 3'b110)          
out = 8'b0100_0000; 
else    if({in1, in2, in3} == 3'b111) 
out = 8'b1000_0000; 
else 
out = 8'b0000_0001; 
endmodule 

3.4 仿真测试

使用Quartus Prime软件对设计的3-8译码器进行了仿真测试。设置了输入信号A、B、C的时序波形,并观察输出信号的变化。

4. 结果分析

4.1 RTL原理图与电路图的差异

通过Quartus Prime综合生成的RTL原理图与之前设计的电路图基本一致。

4.2 仿真测试结果与真值表的一致性

经过仿真测试,输出信号O的变化与逻辑真值表相符合,验证了设计的3-8译码器的正确性。

4.3输出信号定义为reg类型的原因

对于3-8译码器的输出信号,我们需要在每个时钟周期中更新其值。因此,将输出信号定义为reg类型是合适的选择,因为它允许我们在always块中使用阻塞赋值语句(=)或非阻塞赋值语句(<=)来更新输出信号的值。

4.4输出信号定义为wire类型产生的错误

  1. 编译错误:wire类型的信号不能在always`块中进行赋值操作,因此编译器会报错。

  2. 功能错误:由于wire类型的信号无法在always块中赋值,输出信号的值将无法更新,从而导致无法正确实现3-8译码器的功能。

5. 总结

本实验成功设计和仿真了一个3-8译码器电路,并验证了其功能的正确性。通过实验,加深了对数字逻辑电路设计和Verilog编程的掌握。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/707859
推荐阅读
相关标签
  

闽ICP备14008679号