串行数据发送路设计报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串行数据发送路设计报告

串行数据发送电路设计报告 1.功能描述 同步串行数据发送电路SSDT的基本功能是将并行数据转换成串行数据并进行同步发送。系统写入和读出时序完全兼容Intel8086时序。 系统以同步信号开始连续发送四个字节,在发送中出现5个1时插入一个0,在四个数据发送结束而下一次同步没有开始之前,发送7FH,这时中间不需要插入零。 2.状态图描述 图1:状态机示意图 图1是设计使用的状态机,由三个状态组成: 在RST有效时,系统进入FREE状态,这个状态可以写入数据,但不会发送数据,TXD输出为0。 当FS有效时,系统从FREE进入TRAN状态,这个状态下,传送四个字节,在需要时插入零。在THR为空时可以进行写操作。 四个数据传送完成以后进入IDLE状态,发送7FH。直到下一个FS有效进入TRAN状态为止。 3.RTL级的结构图 图2是系统的RTL结构图。主要使用的寄存器有: THR:数据保持寄存器。 THR_EMPTY:数据保持寄存器的状态寄存器。 TSR:数据移位寄存器。 TSR_NUM:数据移位寄存器位数计数器。 TXD:发送寄存器 TXD_SHIFT:发送寄存器备份寄存器。 IDLER:开始放置7FH的移位寄存器。 组合逻辑如图所示。以上各个寄存器以及组合逻辑的详细说明见第4小结的实现说明。 图2:系统RTL结构图 4.实现说明 THR是一个8位的寄存器,这个寄存器通过00端口可写,同时它的状态通过00端口可读。在每一次没有数据并且没有发送完四个时可写入这个寄存器,同时在每一次有数据并且TSR没有数据时可读这个寄存器的内容到TSR。 TSR是一个具有移位功能的,只有在TRAN的状态下,才会移位。也就是将寄存器左移,寄存器的高位移出,低位补零。这个移位寄存器带有一个移位Enable端口,当计数记满五个一时,停止移位。 IDLER是一个空闲移位器,这个移位器的初始值是7E,它只有在空闲状态下才会移位。这是一个循环移位寄存器,一直进行的是左移操作。 另外还有一个空标志寄存器,就是THR_EMPTY,这个寄存器用来标志THR是否为空,它可以同过00端口读出。 TSR有一个8位的位数备份寄存器TSR_NUM,负责记录向外输出的位数是否完成一个字节。在TSR的第一次移位时,入到这个寄存器,然后每一次TSR移位,这个寄存器右移一次。有这个寄存器可以给出TSR的空标志寄存器。TSR的空标志TSR_EMPTY是一个组合逻辑,它由TSR_NUM的8位作8输入与门产生。 TXD有一个移出备份寄存器TXD_SHIFT,这个寄存器保留TXD移出的5位数据,每一次向TXD打入数据时,就向最高位打入TXD中的数据,同时右移,这个寄存器在任何时候都进行这种操作,但是只在TRAN时5位全1时才会算成是需要插入零。 TXD是发送寄存器,每一个时钟都经过一个三选一将数据打入。 CS是一个片选标志,只有党A0为0时这个标志才会有效。 电路中需要一个计数器,记下当前处理的是第几个字节。这就是BYTE_NUM。在FS=0时它的初始值是1。表明处理的是第一个字节的位。当TSR_EMPTY为1并且INSERT_ZERO为0时就开始加一。只在TRAN的状态下计数。 5.详细设计 以下表1是设计的输入输出描述。表中描述了各种信号的名称、有效状态、功能等等。 表1:端口信号说明 信号名 输入输出 有效状态 功能说明 CLK2M IN - 始终2.048M FS IN 低 同步信号 RST IN 低 复位信号 CS IN 低 片选信号 WR IN 低 写有效信号 RD IN 低 读有效信号 A0 IN 低 地址 D_IN IN - 数据输入 D_OUT OUT - 数据输出 TXD OUT - 数据发送 6.仿真及其结果 仿真主要考虑的功能点: (1)连续两次发送4个字节的数据是否正确,也就是FS两次有效的情况。 (2)在一个发送周期中,插入0在一个字节的中间是否正确。比如FEH。 (3)在一个发送周期中,插入0在一个字节的末尾是否正确。比如3FH。 (4)在一个发送周期中,插入0在第四个字节的末尾是否正确。比如3FH。 (5)对00端口进行读操作的时序以及结果是否正确。 (6)对00端口进行写操作的时序以及结果是否正确。 (7)在发送7FH得过程中不插入0是否正确。 仿真程序见文件SSDT_TB.vhd。使用Modelsim7.0仿真出来的结果见下图所示: 图3:一个字节中间需要插入0的时序 图4:一个字节末尾需要插入0的时序 图5:传送最后需要插0的时序 图6:两字节连接需要插0的时序 图7:传送最后不需查0的时序 图8:两次FS之间的转换时序 7.综合及其结果 使用synplify工具进行综合,最后综合的结果如下: 图9:综合和的门

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档