首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于XILINX FPGA嵌入式系统设计与开发

基于XILINX FPGA嵌入式系统设计与开发

仿真结果说明

图8:仿真结果波形图(一)

         查看仿真结果,放大波形图如图8所示,0 ns到160 ns这段为收发器复位和上电控制流程:
l  60 ns左右,gxb_powerdown信号被复位逻辑de-assert了
l  74 ns左右,pll_locked信号变高显示发送PLL锁定到输入时钟了。由此,大概在80 ns左右的时候,tx_digitalreset被复位逻辑de-assert了
l  同时,在gxb_powerdown变低以后,rx_analogreset被复位逻辑在67 ns左右置低
l  rx_analogreset被置低后,rx_pll_locked信号大概在80 ns左右变高,表示接收PLL已经锁定到输入参考时钟
l  rx_pll_locked信号变高以后,大概在183 ns左右rx_freqlocked也被拉高,显示输入参考时钟和接收PLL时钟之间的PPM差异在规定的限制范围内。在390 ns,或者32个周期后,rx_digitalreset被释放,这样接收器才能正常操作了
经历以上流程后,发送器和接收器可以开始准备发送和接收工作了。


图9:仿真结果波形图(二)

         查看仿真波形图380 ns到500 ns,如图9所示。从图8和图9可知,发送器在复位阶段是发送idle码K28.4(十六进制的9C),此时tx_ctrlenable为高。
l  在394 ns,发送器停止发送idle码,转而开始发送字对齐控制符,即K28.5(十六进制BC),注意此时tx_ctrlenable依然为高
l  445 ns,发送K27.7控制符(十六进制FB),用于接收器中Byte Ordering模块,注意此时tx_ctrlenable依然为高
l  450 ns,tx_ctrlenable为低,发送器开始发送数据

图10:仿真结果波形图(三)

         查看仿真波形图470 ns到560 ns,如图10所示。注意接收器的rx_patterdetect,rx_syncstatus,rx_byteorderalignstatus,rx_dataout,rx_ctrldetect,rx_disperr和rx_errdetect信号。
l  在485 ns,当word aligner发现K28.5控制符的时候,它通过rx_syncstatus标示并对齐字边界。同时,rx_patterdetect表示在16-bit半字边界找到了对齐码。需要注意的是rx_patterdetect会变低一旦没有了对齐码,而rx_syncstatus变高后会一直保持不变直到重新复位。
l  同时在485 ns,注意rx_dataout的值,会发现其为BCBC9C9C。由于发送器发送的是9C9C9C9C和BCBCBCBC,所以这就意味着16-bit半字对齐失败,不过用户可以通过逻辑对齐,或者通过Byte Ordering模块自动对齐。
l  在535到550 ns之间,可以看到接收器收到了byte ordering控制符K27.7,并且正确地对齐了输出数据的32-bit边界。可以看到此时rx_byteorderalignstatus信号被拉高,同时上一个字的MSBs处被插入了0000。
l  在550 ns处,接收器开始将计数器值放置到rx_dataout端口,同时rx_ctrldetect为低

分析及结论

参考
[1] http://bbs.ednchina.com/BLOG_ARTICLE_220850.HTM 在ModelSim SE版本中提取Altera库
[2] 为ModelSim独立版本提取ALTERA库(续)
返回列表