FPGA(1)--VHDL--6选1数据选择器

简介: FPGA(1)--VHDL--6选1数据选择器

一、实验目的



掌握用VHDL语句进行组合电路设计的方法,并熟悉程序的编译、调试与波形图的仿真。


二、实验内容



分别用VHDL的CASE语句及IF语句两种方法,设计6选1数据选择器。通过编译、仿真验证功能正确性。


三、实验设计



设计的依据:教材上3.3.1给出了“基于CASE语句的4选1多路选择器表述”,如下为“4选1多路选择器”的VHDL描述和功能描述。


2021071419591422.png


实验设计:根据“4选1多路选择器”的设计思路,考虑到“6选1多路选择器”有6个输入端口,则需要有三个通道选择控制信号端,一个输出端y。当s2&s1&s0分别为000、001、010、011、100、101时,输出端y将分别输出来自输入口a、b、c、d、e和f的数据。又考虑到三个通道选择控制信号组合成了8种情况,而前6种均有对应的操作,而后两种情况(110和111)没有对应的操作,可以使其情况下输出为高阻态。如下分别给出使用if选择语句和case选择语句的“6选1多路选择器”的VHDL描述和相关语句的解释。


20210714200534268.png20210714200658539.png


四、实验结果及仿真



分别对a-f和s2-s0设置合适周期的方波信号输入,观察y输出信号。如下图所示。


20210714200745323.png


观察输入与输出的波形可以分析出“6选1多路选择器”的功能已经实现。即当s2&s1&s0分别为000、001、010、011、100、101时,输出端y将分别输出来自输入口a、b、c、d、e和f的数据。


五、实验思考与总结



关于VHDL语言:VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。在我理解中,VHDL语言是一种更形象化的C语言,其编程格式类似于C语言那样,但其面向硬件使其较为形象化,且对程序本身的完整性提出了更高的要求,在大部分情况下,程序每个部分都需要“有头有尾”,即“End+”的存在。


关于“X选1多路选择器”:其中的X可以通过设计选择控制信号端来实现,而选择器的VHDL程序的核心部分即为if/case选择语句,其两者各有优缺,对于情况较多的情况,我认为使用case语句更加简介方便。


以下请忽略!


import numpy as np
import matplotlib.pyplot as plt
import matplotlib
list=[[1,2,3,4,5,6],[2,4,6,8,10,12],[1,3,5,7,9,11],[1.1,2.2,3.3,4.4,5.5,6.6],[3,6,9,12,15,18],[4,8,12,16,20,24
],[5,10,15,20,25,30],[1.5,2.5,3.5,4.5,5.5,6.5],[1,4,7,10,13,16],[2,5,8,11,14,17]]
a=np.array(list)
std=[]
avg=[]
x=[1,2,3,4,5,6,7,8,9,10]
for i in range(0,len(list)):
    std.append(np.std(a[i]))
    avg.append(np.mean(a[i]))
fig=plt.figure()
plt.xticks(x,x)
plt.plot(x,avg,marker="o",color='#858687',markeredgecolor='black',linewidth=3,label="Mean Value")
for i in range(len(avg)):
    plt.text(x[i],avg[i],avg[i],fontsize=10)
y1=[]
y2=[]
for i in range(len(x)):
    y1.append(avg[i]+std[i]/2)
    y2.append(avg[i] - std[i] / 2)
plt.fill_between(x,y1,y2,color='#d2e3f0',label="Standard deviation")
plt.grid()
plt.legend(loc=2)
plt.show()



相关文章
|
Android开发 异构计算
nios ii FIFO读取FPGA数据交互实验1
nios ii FIFO读取FPGA数据交互实验1
273 0
nios ii FIFO读取FPGA数据交互实验1
|
存储 算法 异构计算
基于FPGA的ECG心电信号峰值检测和心率计算,包括testbench测试文件和ECG数据转换为coe文件程序
基于FPGA的ECG心电信号峰值检测和心率计算,包括testbench测试文件和ECG数据转换为coe文件程序
|
存储 算法 异构计算
m基于FPGA的数据串并并串转换系统verilog实现,包含testbench,可以配置并行数量
m基于FPGA的数据串并并串转换系统verilog实现,包含testbench,可以配置并行数量
395 0
|
算法 网络协议 安全
m基于DE2-115开发板的网口UDP数据收发系统FPGA实现
m基于DE2-115开发板的网口UDP数据收发系统FPGA实现
270 0
|
10天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
104 74
|
1月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
146 69
|
1月前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
73 26

热门文章

最新文章