名称:并串、串并转换器VHDL代码仿真
软件:
语言:VHDL
代码功能:
设计项目
该项目将涉及 VHDL 中并串和串并转换器的开发和仿真。 数字系统通常采用并行数据字节并通过单线传输它们,以节省线路面积、减少串扰效应、提高时钟速度或保持设备之间的兼容性。 本练习涵盖组件实例化以及在单个项目中使用多个 VHDL 模块文件。 在使用 VHDL 设计复杂系统时,最好将系统的功能块分布在多个 VHDL 模块中,从而提高代码的易用性和功能性。 整个系统的示意图如图 1 所示。该图中的不同 VHDL 模块、实体、组件、端口和信号一开始可能会令人困惑,因此在开始练习之前了解层次结构非常重要。在本实验中,我们将使用计数器来序列化转换
转换器和解串器。 计数器用于控制从串行线上放置或删除数据的速率和时间,
并将成为序列化实体的一部分。 为了实现此目标,您应该完成以下任务序列。
1. 创建一个新的 Prime 项目并调用项目 Lab_1。首先,我们将创建一个 4 位计数器
该计数器将用作串行化和反串行化模块的定时器。 将新的 VHDL 文件添加到项目中。将此模块计数器设置为
姓名。 如有必要,请参阅之前实验的说明。 创建一个测试平台来检查代码的功能。
2. 一旦您确定计数器工作正常,请创建一个名为
VHDL模块。在这个模块中,我们设计这个实体来获取8位并行输入信号并将其转换为串行输出
格式,以便每个位将在 8 个时钟周期内通过 1 位宽的输出线传输。为了对传输进行计时,我们将使用
之前创建的计数器模块。该模块应该有一个 8 位输入端口、一个 clk 输入和一个
串行输出。
3. 为了组织并串转换所需的时序,可以在该模块中实例化第 1 部分中创建的计数器。此时
在代码片段中,我们有效地创建了
状态机。假设计数器模块有 16 种可能的状态,并依次递增其计数端口上的计数,我
我们可以为每个二进制计数在不同的情况之间切换。 例如:
状态 1,“0001”:我们取出第一个并行位 (0) 并将其放在串行输出端口上
优越的。
状态 2,“0010”:我们将第二位 (1) 放在输出上,依此类推。
4. 创建转换代码后,生成一个测试平台以在并行输入端口上加载字节“”
对于激励,并且没有初始延迟,以确保代码正常工作并观察串行输出 8 个周期。
5. 最后一步是通过添加名为.this 的新 VHDL 模块来创建反序列化模块
除了将串行输入线上的当前位值分配给每个模块之外,该模块几乎与该模块相同
不同的并行输出位。
提供序列案例来说明传递计数器信号。端口的块输出
嘴
如果表示不完整的数据,则应在分配 8 位后定义一个单独的信号来加载并行输出信号
到物理输出端口。一旦生成了 VHDL 模块,就可以对复制进行良好的行为描述
开始。 在仿真中验证您的设计。 创建一个测试平台并加载串行输入线,如下所示:
处理
开始
等待='1';
等待;
数据输入