新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于FPGA的基带64×64数据分配矩阵设计方案

基于FPGA的基带64×64数据分配矩阵设计方案

作者:时间:2013-11-05来源:网络收藏
-adjust: auto; -webkit-text-stroke-width: 0px">  其数据帧主要包括1位起始位,8位数据位,1位奇偶校验位,1/2位停止位。

  3.2 内部编程

  模块的主要功能是实现串口收发和译码,相应地在用Verilog HDL实现时也分为串口收发和译码2个电路模块,经综合后其RTL级视图如图3所示。开发工具采用Altera公司推出的集成EDA 开发工具Quartus Ⅱ,可以完成Altera公司所有的 /CPLD产品开发的设计输入、综合、实现等环节。

  整体RTL级视图

  3.2.1 串口收发模块设计

  串口收发模块就是图3中的uart_top模块,主要负责串行数据的接收与发送,并将接收到的数据送入下一级。

  该模块的功能已通过串口调试工具调试成功。该模块由4个子模块构成,分别为控制接收波特率的speed_rx模块、控制发送波特率的speed_tx 模块、数据接收模块my_uart_rx、数据发送模块my_uart_tx.

  接收、发送波特率的控制可以引用同一模块的发送来实现。其模块化框图如图4所示,当检测到输入信号 bps_start出现一个上升沿后,则该模块通过计数来实现分频,例如时钟频率为25 MHz,波特率为9 600,则计数周期的25 000 000/9 600≈2 604,该模块部分代码如下:

  波特率产生模块

  数据接收模块的模块化框图如图5所示,它是通过移位运算来接收串行数据,如检测到rs232_rx 由高电平变为低电平则开始移位接收数据,每次接收3 B 的数据,将第二、第三个字节输入下一级,若检测到第一个字节为10101010(即16进制的AA),标志信号flag就将维持一个周期的高电平输出,否则flag一直维持高电平,那么后级将无法锁存第二、第三字节。部分代码如下:

  数据接收模块

  数据发送模块是用来返回接收数据让上位机进行纠错的,其模块化框图如图6所示。如检测到flag变为高电平时,锁存输入的两个字节返回给上位机,部分代码如下:

  数据发送模块

  3.2.2 译码模块设计

  译码模块的模块化框图如图7所示,其功能是对上位机发送的输入输出端口编号进行译码,使相应的输入端口和输出端口连通,如检测到flag 有效的情况下,rx_data_in为2,rx_data_out为3,则该模块会将din[2]通道的输入信号经dout[3]输出通道输出。部分代码如下[10]:

  则该模块会将din[2]通道的输入信号经dout[3]输出通道输出。部分代码如下[10]:

  3.2.3 译码模块仿真



关键词: FPGA 数据分配 矩阵设计

评论


相关推荐

技术专区

关闭