| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 10G光通信 64B66B编解码 配置方法及其工作原理 -> 正文阅读 |
|
[嵌入式]10G光通信 64B66B编解码 配置方法及其工作原理 |
1 配置IP核【vivado PG学习】1 PG168:7 Series FPGAs Transceivers学习笔记中 以10G 64/66B为例,具体配置过程可以参考师兄大佬的博客xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps。 这里再记录一下: 1.1
|
TX Buffer | TX Phase Alignment | |
---|---|---|
易用性 | 建议使用TX buffer。它简单,易于操作。 | 相位校正是一个高级特性,需要额外的逻辑和额外的时钟源限制。TXOUTCLKSEL 必须选择GTX/GTH收发器参考时钟作为TXOUTCLK 驱动TXUSRCLK 的源 |
延时 | 如果低延迟是关键,则必须绕过TX buffer | 相位校正在TX数据路径中使用更少的寄存器来实现更低的确定性延迟。 |
TX 线与线的抗偏斜 | TX相位校正电路可用于减少独立的GTX/GTH收发器之间的偏斜。所有相关的GTX/GTH收发器必须使用相同的线路速率。 |
总之,没有各通道之间的同步需求那就别瞎搞,使能Buffer就完事了。
TX Buffer的使用:
当TXBUFSTATUS
显示overflow或underflow状态时,应该重置TX buffer。TX buffer可以通过使用下列信号复位:GTTXRESET
, TXPCSRESET
,或当TXBUF_RESET_ON_RATE_CHANGE = TRUE
时GTX/GTH收发器内部产生的对速率变化的TX buffer复位信号。断言GTTXRESET
会触发一个序列,重置GTX/GTH的整个发射器。这些设置用于使TX buffer解决XCLK和TXUSRCLK域之间的相位差:
绕过Buffer
功能:
绕过TX缓冲区是7系列GTX/GTH收发器的高级功能。TX相位校正电路用于调整PISO并行时钟域与TX XCLK域之间的相位差,将数据从PCS传输到PISO。它还通过不断调整TXUSRCLK来补偿温度和电压变化来执行TX延迟校正。联合TX相位和延迟校正可以由GTX收发器自动执行或由用户手动控制。对于GTH收发器,这个功能必须由用户手动控制。
绕过TX Buffer的工作模式
TX相位校正可以在一个通道(单通道)或共享一个TXOUTCLK(多通道)的一组通道上执行。对于GTX收发器,TX Buffer Bypass 支持 single-lane 自动(Auto)模式和 multi-lane 手动( Manual)模式。
Tx Buffer Bypass | GTX 收发器 | GTH 收发器 |
---|---|---|
single-lane | 自动或手动 | 手动 |
multi-lane | 手动 | 手动 |
因为不常用这里不展开说。具体的配置端口和属性可以看《UG476:7 Series FPGAs GTX/GTH Transceivers》
输入缓冲器与输出功能类似。
//-------------输入/输出缓冲器工作原理-----------------end
//-------------两种序列计数器工作原理-----------------begin
这里以64B/66B编码方式为例,有64B/66B with Int Seq Ctr
和 64B/66B with Ext Seq Ctr
两种模式。
简单介绍: 这是Tx Gearbox的两种操作模式。外部序列计数器(Ext Seq Ctr)工作模式必须在用户逻辑中实现序列计数器。第二种模式使用内部序列计数器(Int Seq Ctr)。GTH收发器不支持内部序列计数器模式。TX变速箱支持2字节、4字节和8字节接口到FPGA逻辑。
外部序列计数器工作模式:
当gearbox正常工作模式(GEARBOX_MODE[2] = 1’b0)时需要TXSEQUENCE [6:0]
, TXDATA[63:0]
, 和 TXHEADER[2:0]
三个输入。用户逻辑需要一个二进制计数器驱动IP核的TXSEQUENCE
端口。对于64B/66B编码,计数器从0-32循环计数(值得注意的是这里指的是64/66B,如果64/67B,则是0-66循环计数)。并且把未使用的位TXSQUENCE [6] 和 TXHEADER [2] 置为0。**循环计数的范围与输入位宽无关。**然而,当使用TX_DATA_WIDTH与TX_INT_DATAWIDTH相同的模式(例如,一个4字节的接口(TX_DATA_WIDTH = 32)和一个4字节的内部数据宽度(TX_INT_DATAWIDTH= 1)时,计数器必须每两个TXUSRCLK2周期增加一次。这是因为32位数据位宽每64个数据等待两个周期,所以每两个时钟周期加一。
在TX_DATA_WIDTH和TX_INT_DATAWIDTH相同的模式下,每64个数据有两个TXUSRCLK2周期的数据暂停,在TX_INT_DATAWIDTH是TX_DATA_WIDTH的两倍的模式下,每64个数据有一个TXUSRCLK2周期的数据暂停。
我们配置为TX_DATA_WIDTH = 32,TX_INT_DATAWIDTH = 1(1倍),所以TXSEQUENCE计数频率为2*TXUSRCLK2,在计数为32时暂停输入(就算输入也会舍弃)。
下面是TX_DATA_WIDTH = 64,TX_INT_DATAWIDTH = 1(1倍)的时序图,我们的工作模式也是类似的,只不过技术频率为两倍:
外部序列计数器正常工作模式(GEARBOX_MODE[2] = 1’b0)发送64/66 数据时(TX_DATA_WIDTH = 32,TX_INT_DATAWIDTH = 1(1倍))的序列如下:
内部序列计数器工作模式(只有GTX收发器支持):
当工作与内部序列计数器工作模式时,需要TXSTARTSEQ
输入与 TXGEARBOXREADY
输出。以及与数据相关的 TXDATA
和 TXHEADER
输入。这个模式没有TXSEQUENCE
,除了有一个TXGEARBOXREADY输出外与外部序列计数器模式类似。
TXSTARTSEQ
输入指示TX gearbox,当复位后的有效数据的第一个字节。
当在复位条件之后应用有效数据的第一个字节时,TXSTARTSEQ
被置为高。TXDATA
和TXHEADER
输入必须在复位后保持稳定,TXSTARTSEQ
必须保持为低直到数据连续输入。复位完成之后等待第一个有效数据的时间没有规定,可长可短。TXSTARTSEQ
在有效数据的前2、4或8字节(也就是指不同位宽的第一个数据)被置为高,在这之前不能拉高。在数据的第一个字节之后,TXSTARTSEQ
可以为任意值。
在数据输入完(直到需要暂停的数据个数,32或64个)后,TXGEARBOXREADY在两个或三个TXUSRCLK2周期中被置为低,这取决于TX_DATA_WIDTH和TX_INT_DATAWIDTH,对于TX_DATA_WIDTH是TX_INT_DATAWIDTH的两倍的模式,TXGEARBOXREADY在两个TXUSRCLK2周期后被置为低。对于具有相同TX_DATA_WIDTH和TX_INT_DATAWIDTH的模式,它对三个TXUSRCLK2周期后被置为低。
当TXGEARBOXREADY
被置为低时,还可以输入一个TXUSRCLK2周期(D_j
)的数据,然后就必须停止数据输入。1周期延迟是固定的,不能更改。经过一个延时周期(D_k1
)后,数据必须保持到TXGEARBOXREADY
变为高(D_k2
),然后就可以输入新数据了(D_l
)。对于这种操作模式,数据的数量与使用外部序列计数器模式为64B/67B或64B/66B时相同。这里要注意我们的模式是两个周期的延时。
GTX 收发器 内部序列计数器工作模式传输的序列:
TXSTARTSEQ
为低电平。GTTXRESET
复位然后等待复位周期完成。TXGEARBOXREADY
会被IP核拉高。TXSTARTSEQ
,并将第一个有效的头信息放在TXHEADER
上,数据放在TXDATA
上。TXGEARBOXREADY
被IP核拉低。TXGEARBOXREADY
变为低时,驱动最后的2、4或8字节的数据(也就是最后一个数据)和报头信息。TX_DATA_WIDTH
和TX_INT_DATAWIDTH
设置,数据保持一个或两个TXUSRCLK2周期的。TXUSRCLK2
周期中,驱动TXDATA
上的数据输入。TXGEARBOXREADY
在前一个的TXUSRCLK2
周期上被置为高。//-------------两种系列计数器工作原理-----------------end
page4: Comma Alignment and Equalization
Comma Detection
一些判定分隔符的选项,分隔符也是默认的,其他默认就好。
Optional Ports
我们用不上,所以全部取消勾选,简化端口。
RX Equalization
设置接收端的均衡模式。这里我们选择DFE模式。选择的参考见LPM和DFE模式之间的选择
//-------------均衡模式工作原理-----------------begin
RX 均衡器(DFE和LPM)
功能:
串行链路误码率(bit error rate,BER)性能是发射器、传输媒介和接收器的关系函数。传输媒介或信道是有带宽限制的,通过它的信号受到衰减和失真。
有两种类型的自适应滤波可用于GTX/GTH接收器,这取决于功率和性能之间的系统水平权衡。
GTX/GTH接收器具有低功耗的自适应模式,即低功耗模式(low-power mode,LPM)。
为了均衡损耗更大的信道,可以使用DFE模式。与使用线性均衡器相比,DFE通过提供更接近的滤波器参数调整,可以更好地补偿传输信道损耗。然而,DFE不能删除传输位的前光标( pre-cursor),它只补偿后游标(post cursor)。线性均衡器允许前光标和后光标增益。GTX/GTH RX DFE模式是一种离散时间自适应高通滤波器。DFE的TAP值是自适应算法设置的滤波器系数。
低功耗模式:
DFE模式:
GTX使用的模式
LPM和DFE模式之间的选择
LPM模式推荐用于线路速率高达11.2Gb/s的短距离应用,在小于Nyquist频率下信道损耗为12dB或更少。
DFE模式推荐用于中长距应用,信道大于奈奎斯特频率损耗为为8db以上。DFE具有在不放大噪声和串扰的情况下均衡信道的优点。DFE还可以纠正GTX收发器前5个后游标内信道不连续引起的反射。在单bit响应分析中,当考虑串扰或识别反射时,DFE模式是最好的选择。
在8B/10B应用程序或不使用数据扰乱(data scrambling)的应用程序中,必须仔细考虑DFE模式。为了更好的适应数据,DFE模式下的自适应要求传入数据是随机的。例如,在XAUI应用程序中,用户有效负载数据是非加密的,并且采用8B/10B编码。虽然用户有效负载通常是随机的,但数据的频率内容在本质上受到编码的限制,而且协议中没有定义防止重复pattern发生的内容。这些重复的pattern会导致自适应算法偏离理想的均衡设置。具有与PRBS7(或更高多项式)相似特征的模式具有足够的随机性,以便于自适应适当地选择正确的均衡设置。对于LPM模式下的8B/10B应用程序,在适应过程中可以使用带或不带置乱的重复pattern(空闲模式)。
LPM模式的使用
GTX LPM和DFE模式采用不同的CTLE模块。此外,GTX收发器有一个基线漂移消除电路。在GTX收发器中,LPM模式下的CTLE和基线漂移消除是完全自适应的,不需要手动调整增益属性设置。
通过将RXLPMEN端口设置为1’b1来选择LPM模式。
DFE模式的使用
DFE模式利用AGC、CTLE、DFE和基线漂移抵消来均衡信道的影响。
通过将RXLPMEN端口设置为1’b0来选择DFE模式。
AGC、DFE和基线漂移消除是自适应的。可以通过断言特定适配环路的HOLD端口来保持适配。
GTX和GTH收发器: LPM和DFE模式之间的运行时切换
在多速率应用程序中,可能需要在LPM(较低的行速率)和DFE(较高的行速率)之间进行切换。应该按照以下步骤在LPM和之间进行切换:
//-------------均衡模式工作原理-----------------end
page5: PCIe,SATA,PRBS
Optional Ports
:
LOOPBACK
可以选一下,方便换回测试代码,当数据不通时,可以先选择环回模式来排除代码的问题。
其他全部取消勾选。
//-------------环回模式工作原理-----------------begin
功能描述:
环回模式是收发器数据路径的特殊配置,在那里数据流反馈到源。通常,传输一个特定的数据流模式,然后比较检查错误。图2-26展示了四种不同环回模式的环回测试配置。
环回测试模式分为两大类:
环回测试可用于在开发期间或部署的器件中进行故障隔离排查。所使用的数据流模式可以是应用程序数据流模式,也可以是专门的伪随机比特序列。每个GTX/GTH收发器有一个内置的PRBS发生器和检查器。
每个GTX/GTH收发器都有几个环回模式,以方便测试:
Near-End PCS
环回
必须启用RX elastic buffer ,并且为了近端pcs环回功能正常RX_XCLK_SEL必须设置为RXREC。而在近端pcs环回,RX XCLK域由TX PMA并行时钟(TX XCLK)驱动。如果RXOUTCLK用于FPGA逻辑时钟,正常运行时RXOUTCLKSEL设置为RXOUTCLKPMA,当将GTX/GTH收发器放入近端PCS环回时,必须更改以下其中一项:
Near-End PMA
环回
进出近端PMA环回后需要GTRXRESET。
Far-End PMA
环回
Far-End的TX buffer必须启用,为了PMA环回功能正常TX_XCLK_SEL必须设置为TXOUT 。而在远端PMA环回,TX buffer的写端是由RX PMA并行时钟(RX XCLK)驱动。必须通过将TXPIPPMEN端口设置为1’b0和TXPIPPMSEL端口设置为1’b0来禁用TX相位内插器PPM控制器。进入和退出Far-End PMA 环回后需要GTTXRESET。
Far-End PCS
换回
如果不使用时钟校正,远端PCS环回中的收发器必须使用作为环回数据源的收发器所使用的相同的参考时钟。无论是否使用时钟校正,TXUSRCLK端口和RXUSRCLK端口必须由相同的时钟资源(BUFG、BUFR或BUFH)驱动。 gearbox在收或发通道是启用的时不支持远端PCS环回。
配置方法:
//-------------环回模式工作原理-----------------end
page6: CB and CC Sequence
Clock Correction
这里我们勾选Use Clock Corrrection
, 然后设置序列长度为4并设置具体序列。
PPM Offeset +/-
这个的含义是发送时钟和接收时钟之间的PPM偏差。默认就好。
//-------------接收时钟校正工作原理-----------------begin
首先看看接收主要模块及时钟域:
功能:
RX elastic buffer被设计成在两个不同的时钟域RXUSRCLK和XCLK之间的桥,从CDR(时钟数据恢复,RX clock data recovery)恢复的时钟。即使是RXUSRCLK和XCLK在相同的时钟频率下运行,总是有很小的频率差。因为XCLK和RXUSRCLK并不完全相同,除非对其进行纠正,否则会累积差异导致RX elastic buffer最终溢出或下溢。为了允许校正,每个GTX/GTH收发器TX定期发送一个或多个特殊字符,允许GTX/GTH收发器RX删除或复制这些特殊字符。通过在RX elastic buffer过满时删除字符,在RX elastic buffer过空时复制字符,可以防止overflow或 underflow 。
使用时钟校正
使能Clock Correction
每个GTX/GTH收发器包括一个时钟校正电路,通过控制RX弹性缓冲器的指针来执行时钟校正。要使用时钟校正,RXBUF_EN
设置为TRUE以打开RX弹性缓冲区,CLK_CORRECT_USE
设置为TRUE以打开时钟校正电路。
当RX弹性缓冲延迟过高或过低时触发时钟校正,时钟校正电路检测到匹配序列。要使用时钟校正,必须配置时钟校正电路来设置这些项:
设置RX elastic buffer范围
RX弹性缓冲区限制使用CLK_COR_MIN_LAT(最小延迟)和CLK_COR_MAX_LAT(最大延迟)。当RX弹性缓冲区中的字节数下降到CLK_COR_MIN_LAT以下时,时钟校正电路写一个额外的CLK_COR_SEQ_LEN字节,来自它匹配的第一个时钟校正序列,以防止缓冲区underflow。类似地,当RX弹性缓冲区中的字节数超过时CLK_COR_MAX_LAT,时钟校正电路从它匹配的第一个时钟校正序列中删除CLK_COR_SEQ_LEN字节,从序列的第一个字节开始。 7系列fpga收发器向导选择最佳设置CLK_COR_MIN_LAT和CLK_COR_MAX_LAT。所以不需要自己设。
因为CLK_COR_MIN_LAT用于设置初始RX弹性缓冲区延迟,它必须被ALIGN_COMMA_WORD设置整除,以保持通过弹性缓冲区的comma对齐。CLK_COR_MIN_LAT的值必须符合RX_INT_DATAWIDTH和ALIGN_COMMA_WORD参数如表所示。
CLK_COR_SEQ_1_*
属性(对应IP核配置中的具体序列值)和 CLK_COR_SEQ_LEN
设置(对应IP核配置中的 Sequence length 选项 )。每个 CLK_COR_SEQ_1_*
属性对应一个时钟校正序列1中的子序列。CLK_COR_SEQ_LEN用于设置要匹配的子序列数量。如果使用40位或20位的内部数据路径,则时钟校正电路匹配每个子序列的所有10位。如果使用16位或32位内部数据路径,则只使用每个子序列最右边的8位。CLK_COR_SEQ_2_USE
为TRUE。对应IP核设置的Use Two Clock Correction Sequences
选项。第一个和第二个序列共享长度设置。第一和第二序列使用不同的子序列值进行匹配。设置CLK_COR_SEQ_2_*
属性来定义第二个序列的子序列值。这里我们没用8B/10B解码,不关注。
一些协议使用不关心子序列的时钟校正序列。时钟校正电路可编程识别这些序列使用CLK_COR_SEQ_1_ENABLE CLK_COR_SEQ_2_ENABLE。当序列的启用位为Low时,无论值是什么,该字节都被认为匹配。时钟修正序列与时钟修正序列使能位的对应关系如图4-52所示。
时钟校正选项
CLK_COR_REPEAT_WAIT用于控制时钟校正频率(对应IP核配置中的 Periodicity of CC Sequence(bytes) 选项)。这个值被设置为时钟校正事件之间所需的最小RXUSRCLK周期数。此属性设置为0以允许在任何时间进行时钟校正。一些协议允许在任何时间进行时钟校正,但要求如果时钟校正电路删除序列,至少有一个序列保留在流中。对于有此要求的协议,CLK_COR_KEEP_IDLE设置为TRUE。
//-------------接收时钟校正工作原理-----------------end
Summary
最后,我们可以稍微核验一下设置对不对。
比如TXUSRCLK(2)=312.5MHz
,我们设置的外部数据位宽为32位。内部位宽为1倍,则内部时钟 TXUSRCLK = (line Rate) / (internal Data Width) = 10G / 32 = 312.5M。 外部时钟 TXUSRCLK2 = (line Rate) / (External Data Width) = 10G / 32 = 312.5M。接收同理。
这个IP核需要一些我们设置的外部共享资源以及比较复杂的复位等逻辑所以一般在例程的基础上进行开发。
打开例程:
例程的文件结构:
每个文件的功能见【vivado PG学习】1 PG168:7 Series FPGAs Transceivers官方配置方法学习笔记的5.3 节 例程文件结构。
GTX的位置首先要改一下系统时钟的约束:
可以看到这里对GTX的位置和参考时钟进行了约束,由于GTX的位置与对应引脚有映射关系,所以不需要再对RXN(P)_IN
、TXN(P)_OUT
端口进行引脚绑定。
我们要改的就是根据自己配置的参考时钟来源更改DRP_CLK_IN_P(N)
的约束。默认是KC705 demo板的约束。这里我的参考时钟是外部25MHz单端输入,所以接到DRP_CLK_IN_P
,然后时钟周期改成create_clock -name drpclk_in_i -period 40.0 [get_ports DRP_CLK_IN_P]
就行。如果选的是外部MMCM或PLL输出的时钟,则把引脚绑定删除即可。
这里以仿真来说明例程的应用。
顶层gtwizard_0_exdes
模块有一些属性需要注意一下:
EXAMPLE_SIM_GTRESET_SPEEDUP
: 如果是仿真设为“TRUE”,如果是实际应用设为“FALSE”。STABLE_CLOCK_PERIOD
: 系统参考时钟,即DRP_CLK_IN_P的周期。还有一个注意点就是发送的数据gt0_txdata_i
要经过扰码模块scrambler_0_i
产生扰码gt0_scrambled_data_i
。
接收的数据gt0_rxdata_i
要经过解扰码模块descrambler_0_i
恢复成数据gt0_unscrambled_data_i
。
所以我们抓信号的时候要注意再抓一下解扰码后的数据,不然不好判断数据是否正常。
我们选择的工作模式是:64B/66B with Int Seq Ctr
,前面大概介绍过这种工作模式的序列输入。这里做补充说明。别看模块有很多端口,但是大部分是一些监测或控制端口,实际简单的收发应用时,重点关注仿真中列出来的几根信号就行。
仿真结果:
首先我们可以看到有两个复位信号gt0_txfsmresetdone_i
和 gt0_txresetdone_i
:
gt0_txresetdone_i
是给了复位状态机的。应该对应的是复位状态机中的TXPMARESET
和TXPCSRESET
复位完成的信号。所以也对应了时序中gt0_txresetdone_i
先完成复位,然后复位状态机gt0_txfsmresetdone_i
才完成复位。
//-------------TX初始化和复位原理-----------------begin
复位的状态机:
展开IP核,可以看到:
其中gtwizard_0_init_i模块中有tx复位状态机的模块例化:
gtwizard_0_TX_STARTUP_FSM #
(
.EXAMPLE_SIMULATION (EXAMPLE_SIMULATION),
.STABLE_CLOCK_PERIOD (STABLE_CLOCK_PERIOD), // Period of the stable clock driving this state-machine, unit is [ns]
.RETRY_COUNTER_BITWIDTH (8),
.TX_QPLL_USED ("TRUE"), // the TX and RX Reset FSMs must
.RX_QPLL_USED ("TRUE"), // share these two generic values
.PHASE_ALIGNMENT_MANUAL ("FALSE") // Decision if a manual phase-alignment is necessary or the automatic
// is enough. For single-lane applications the automatic alignment is
// sufficient
)
gt0_txresetfsm_i
(
.STABLE_CLOCK (sysclk_in),
.TXUSERCLK (gt0_txusrclk_in),
.SOFT_RESET (soft_reset_tx_in),
.QPLLREFCLKLOST (gt0_qpllrefclklost_in),
.CPLLREFCLKLOST (tied_to_ground_i),
.QPLLLOCK (gt0_qplllock_in),
.CPLLLOCK (tied_to_vcc_i),
.TXRESETDONE (gt0_txresetdone_i),
.MMCM_LOCK (tied_to_vcc_i),
.GTTXRESET (gt0_gttxreset_t),
.MMCM_RESET (),
.QPLL_RESET (gt0_qpllreset_t),
.CPLL_RESET (),
.TX_FSM_RESET_DONE (gt0_tx_fsm_reset_done_out),
.TXUSERRDY (gt0_txuserrdy_t),
.RUN_PHALIGNMENT (),
.RESET_PHALIGNMENT (),
.PHALIGNMENT_DONE (tied_to_vcc_i),
.RETRY_COUNTER ()
);
//-------------TX初始化和复位原理-----------------end
可以看到当PMA和PCS复位gt0_txresetdone_i
完成后, gearbox的ready信号gt0_txgearboxready_i
就已经拉高了, 但这个时候还不能给数据,因为复位状态机还没有完成复位。
等复位状态机复位gt0_txfsmresetdone_i
完成, 并且第一个数据gt0_scrambled_data_i
和控制位gt0_txheader_r
已经稳定后,就可以把gt0_txstartseq_r
拉高,这代表序列的第一个数据,是为了给我们使用模块时同步用的。
可以看到gt0_txstartseq_r
拉高的204.8ns后,也就是64个数据之后,gt0_txgearboxready_i
变为低,此时等待两个时钟周期。然后继续给数据。时序与上面64B/66B with Int Seq Ctr
工作模式原理介绍的一致。每64个数据等待两个时钟周期。
这里要注意要发送的数据gt0_txdata_i
要先经过一个加扰码的模块产生扰码gt0_scrambled_data_i
。
接收时序比较简单。
可以注意一下这个gt0_rxheader_i
, 可以看到RX gearbox的工作数据流:
可以看到每间隔一个才是真正的Header数据,所以它的有效信号gt0_rxdatavalid_i
也是间隔一位的。可以看到解扰码后的数据gt0_unscrambled_data_i
与发送的Header也是对应的。
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:37:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |