CN104467865B - 串行通信协议控制器、字节拆分电路及8b10b编码器 - Google Patents
串行通信协议控制器、字节拆分电路及8b10b编码器 Download PDFInfo
- Publication number
- CN104467865B CN104467865B CN201410711924.2A CN201410711924A CN104467865B CN 104467865 B CN104467865 B CN 104467865B CN 201410711924 A CN201410711924 A CN 201410711924A CN 104467865 B CN104467865 B CN 104467865B
- Authority
- CN
- China
- Prior art keywords
- byte
- data
- split circuit
- encoders
- serial communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种串行通信协议控制器,包括字节拆分电路和8b10b编码器,所述字节拆分电路接收总线数据,传送至8b10b编码器,并完成总线数据与8b/10b编码器间不同时钟频率、不同位宽的数据的匹配。字节拆分电路包括FIFO、控制器和寄存器,字节拆分电路提取32位总线数据字节0、字节1、字节2、字节3构成源数据字1;字节4、字节5、字节6、字节7构成源数据字2,获得4拍8位输出数据,然后依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至编码器输入端。本发明还提供一种串行通信协议控制器采用的字节拆分电路、8b10b编码器。本发明有效解决了高速串行通信协议的发送端数据带宽的匹配问题。
Description
技术领域
本发明本发明涉及微电子技术领域,尤其涉及一种高速串行通信协议控制器电路,具体涉及一种字节拆分电路及8b10b编码器。
背景技术
在传统的并行数据传输方式中,数据的传递方式一般是采用专门的数据总线和时钟线进行同步的传送。传统并行总线的带宽限制已经不能满足硬件子系统速度的发展和数据吞吐量不断增长的惊人需求,主要表现在以下两个方面:随着总线频率的上升,会影响在同一频率下挂接到总线上负载的数量,所以即使提高总线时钟频率,也无法显著提升总线带宽;虽然可以通过增加并行通道个数的方式加大带宽,但是时钟信号线与数据信号线同步传输的方式,会带来难以解决的信号偏移以及串扰等问题,加大PCB布局的难度,所以通道个数并不能无限制的增加,因此亟需在不增加通道个数情况下解决系统总线数据带宽与串行通信协议控制器内部8位处理数据带宽不匹配的问题。
但是在串行数据传输方式中,信道连接端上只有数据总线没有时钟线。比如SATA高速串行通信协议,SATA总线物理链路间的数据传送使用基于时钟的同步传送机制,在物理链路上并没有时钟线,SATA总线的接收端含有时钟恢复模块CDR,CDR将从接收报文中提取接收时钟,从而进行同步数据传递,因此需要在链路发送端对有效信号中嵌入足够多的时钟信息。
8b/10b编码器是SATA控制器电路中的关键模块,具有嵌入式时钟、直流分量平衡、错误字符可检测等优点,广泛应用于SATA、PCI Express、Rapid IO、USB等高速串行通信协议。
8b/10b编码器将字节数据为 10 位字节码,主要目的是提高位流中 1/0,0/1 跳变密度,因为SATA协议的物理层并没有设置单独的信号线来传递高频的串行时钟,而是将其与比特流组合在一起,当比特位流中含有足够多的跳变沿时,接受端的时钟接受电路就可以从比特流中提取出时钟,作为他的数据接受时钟。因此8b/10b编码器必须可靠的运行在足够高的时种下,以SATA协议为例,为了满足SATA3.0协议的要求,需要编码器电路能够可靠的运行在最高600MHz的时钟下。
其编码算法原理如下:编码器的输入字符分为两种,12个控制码字K码,256个数据码字D码。如图1所示,8比特输入数据分为高3位HGF和低5位EDCBA分别编码,编码过程中同时根据当前的极性差RD分别编码为fghi和abcdei,然后合并为10位数据abcdeifghj。所有的码流的极性偏差RD值范围在(-3,3)之间,编码后的10比特数据的RD值只能为-2,0,2。如果已经编码后的数据RD为负值,那么下一次编码后的数据RD值只能为0或者正值。所以,依照这种规则,并从长序列码流上来看,传输数据上的“0”、“1”个数相同,从而实现了直流平衡。
常用的编码电路设计方法有两种:一种是将256个数据码和12个功能码的对应规则都用存储器存储,编码过程分为映射与极性选择两部分,这种方法会增大芯片的面积和功耗,同时受限于查找表的速度以及工艺参数,电路最高工作频率一般很难达到500MHz以上;另一种方法是通过逻辑运算完成编码功能,编码器可运行的最高频率较高,这种方法的缺点是编码逻辑关系复杂,可能会引起逻辑扇入或扇出大。
发明内容
为了克服现有技术中存在的不足,本发明提供一种串行通信协议控制器、字节拆分电路及8b/10b编码器,解决高速串行通信协议的发送端数据带宽的匹配问题。
为实现上述目的,本发明采取如下技术方案:
一种串行通信协议控制器,包括字节拆分电路和8b10b编码器,所述字节拆分电路接收总线数据,传送至8b10b编码器,并完成总线数据与8b/10b编码器间不同时钟频率、不同位宽的数据的匹配。
更进一步的,字节拆分电路包括FIFO、控制器和寄存器,字节拆分电路按照从低位到高位的顺序按字节提取总线数据,并依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至编码器输入端。
更进一步的,FIFO为深度为4、位宽32的FIFO,所述字节拆分电路提取32位总线数据字节0、字节1、字节2、字节3构成源数据字1;字节4、字节5、字节6、字节7构成源数据字2,获得4拍8位输出数据,然后依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至编码器输入端。
更进一步的,8b10b编码器采用三级流水结构,记字节拆分电路发送的8位待编码数据abcdefgh、1位待编码数据码/控制码符号位Z,第一级流水过程中,8位待解码数据高3位采用3b/4b、低5位采用5b/6b规则分别进行编码;第二级流水过程中,待解码数据经过预编码过程产生中间变量ao、bo、co、do、eo、io、 fo、go、ho、jo;同时经过极性计算后产生6b极性和4b极性;第三级流水进行极性调整与码型拼接输出10位编码后数据。
更进一步的,8b10b编码器输入端设有用于调试的1位编码极性控制位,编码极性控制位置位时,8b10b编码器改变当前编码后数据的极性。
一种串行通信协议控制器采用的字节拆分电路,包括FIFO、控制器和寄存器,字节拆分电路按照从低位到高位的顺序按字节提取总线数据,并依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至编码器输入端。
更进一步的,FIFO为深度为4、位宽32的FIFO,所述字节拆分电路提取32位总线数据字节0、字节1、字节2、字节3构成源数据字1;字节4、字节5、字节6、字节7构成源数据字2,获得4拍8位输出数据,然后依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至编码器输入端。
一种串行通信协议控制器采用的8b10b编码器,采用三级流水结构,记字节拆分电路发送的8位待编码数据abcdefgh、1位待编码数据码/控制码符号位Z,第一级流水过程中,8位待解码数据高3位采用3b/4b、低5位采用5b/6b规则分别进行编码;第二级流水过程中,待解码数据经过预编码过程产生中间变量ao、bo、co、do、eo、io、 fo、go、ho、jo;同时经过极性计算后产生6b极性和4b极性;第三级流水进行极性调整与码型拼接输出10位编码后数据。
更进一步的,所述8b10b编码器输入端设有用于调试的1位编码极性控制位,编码极性控制位置位时,8b10b编码器改变当前编码后数据的极性。
有益效果:(1)本发明通过字节拆分电路解决了32位系统总线数据带宽与串行通信协议控制器内部8位处理数据带宽不匹配的问题,从原有的内部4通道8位数据处理流,变化为单通道8位数据处理流,降低了串行通信协议控制器内部模逆电路的设计难度。
(2)本发明在串行通信协议控制器发送端电路结构中采用基于8b10b算法的编码电路,传统查表型电路实现方法受制于工艺参数的限制无法满足电路最高工作频率的要求,通过设计三级流水线的逻辑运算结构显著提高了8b10b编码器的最高工作频率。与查表法相比,本发明中的编码器电路,在面积上节省60%~70%,动态功耗方面略有提升10%~15%,通过牺牲小部分功耗代价换来了显著的面积减少,更有利于芯片集成。
(3)本发明通过8b10b编码器中的极性控制位,可以在当前数据流中注入不规则极性,为验证和调试解码电路提供了一种验证测试手段。
附图说明
图1为编码器字符映射过程图。
图2为本发明提供的总体电路结构框图。
图3为本发明字节拆分电路字节拆分原理图。
图4为本发明8b10b编码器电路结构框图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
实施例一
如图2所示,本发明提供的一种串行通信协议控制器,包括字节拆分电路及8b10b编码器,字节拆分电路完成系统总线数据与8b/10b编码器间不同时钟频率、不同位宽的数据的匹配,8b/10b编码器编码后发送给并串转换电路,本实施例以最常用的SATA高速串行通信协议为基础进行介绍,但不限于SATA高速串行通信协议。
如图2、3所示,字节拆分电路包括深度为4、位宽32的FIFO,控制器和寄存器,将150MHz时钟频率下的32位输入总线数据调整为600MHz时钟频率下的4拍8位输出数据,传送至8b/10b编码器。字节拆分电路按照从低位到高位的顺序,提取总线数据字节0、字节1、字节2、字节3构成源数据字1;字节4、字节5、字节6、字节7构成源数据字2,并依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至编码器输入端。
为了满足SATA协议的要求,需要8b/10b编码器电路能够可靠的运行在最高600MHz的时钟下。但为了避免现有两种方法的缺点,本发明采用性能优化的三级流水线编码实现方案,同时设计了极性控制端,方便调试。与查表法相比,本发明中的编码器电路,在面积上节省60%~70%,动态功耗方面略有提升10%~15%,通过牺牲小部分功耗代价换来了显著的面积减少,更有利于芯片集成。
本发明提供的8b/10b编码器电路结构如图4所示,端口输入为字节拆分电路发送的8位待编码数据abcdefgh、1位待编码数据码/控制码符号位Z,以及用于调试的1位编码极性控制位,端口输出为10位编码后数据。编码过程采用三级流水结构,显著提高了芯片的最高工作频率。第一级流水过程中,8位待发送数据高3位采用3b/4b、低5位采用5b/6b规则分别进行编码;第二级流水过程中,待解码数据经过预编码过程产生中间变量ao、bo、co、do、eo、io、 fo、go、ho、jo;同时经过极性计算后产生6b极性和4b极性;第三级流水进行极性调整与码型拼接输出10位编码后数据。编码极性控制位,可以改变当前编码后数据的极性,同时也可以作为一种验证测试手段,为当前数据流注入不规则数据极性。
实施例二
本发明还提供实施例一所述用于串行通信协议控制器的字节拆分电路。
实施例三
本发明还提供实施例一所述用于串行通信协议控制器的8b/10b编码器。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种串行通信协议控制器采用的字节拆分电路,其特征在于:包括8b/10b编码器,所述字节拆分电路接收总线数据,传送至8b/10b编码器,并完成总线数据与8b/10b编码器间不同时钟频率、不同位宽的数据的匹配;
所述字节拆分电路包括FIFO、控制器和寄存器,字节拆分电路按照从低位到高位的顺序按字节提取总线数据,并依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至8b/10b编码器输入端。
2.根据权利要求1所述的一种串行通信协议控制器采用的字节拆分电路,其特征在于:所述FIFO为深度为4、位宽32的FIFO,所述字节拆分电路提取32位总线数据字节0、字节1、字节2、字节3构成源数据字1;字节4、字节5、字节6、字节7构成源数据字2,获得4拍8位输出数据,然后依次写入FIFO,然后在控制器作用下读出到寄存器中,同时按照字节从低到高的顺序依次传送至8b/10b编码器输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410711924.2A CN104467865B (zh) | 2014-12-01 | 2014-12-01 | 串行通信协议控制器、字节拆分电路及8b10b编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410711924.2A CN104467865B (zh) | 2014-12-01 | 2014-12-01 | 串行通信协议控制器、字节拆分电路及8b10b编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104467865A CN104467865A (zh) | 2015-03-25 |
CN104467865B true CN104467865B (zh) | 2018-08-03 |
Family
ID=52913330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410711924.2A Active CN104467865B (zh) | 2014-12-01 | 2014-12-01 | 串行通信协议控制器、字节拆分电路及8b10b编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104467865B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776422B (zh) * | 2016-11-21 | 2021-08-27 | 深圳市科楠科技开发有限公司 | 一种基于8b/10b编解码的串行传输方法及系统 |
CN107085174B (zh) * | 2017-05-18 | 2019-12-17 | 北京兴迪仪器有限责任公司 | 一种分布式局部放电检测系统的高精度时间同步方法 |
CN109213796B (zh) * | 2018-09-20 | 2020-11-10 | 京信通信系统(中国)有限公司 | 射频数据表生成方法及装置、射频值查询方法及装置 |
CN109347484B (zh) * | 2018-11-05 | 2022-07-12 | 西安微电子技术研究所 | 一种基于二级查表的64b/66b编码器及编码方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100367256C (zh) * | 2003-11-26 | 2008-02-06 | 北京微辰信息技术有限公司 | 高速sata接口数据恢复和串并转换的方法及电路模块 |
CN103914420B (zh) * | 2013-01-04 | 2016-12-28 | 中兴通讯股份有限公司 | 基于第三方phy的sata速度自协商方法及装置 |
-
2014
- 2014-12-01 CN CN201410711924.2A patent/CN104467865B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104467865A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8718184B1 (en) | Finite state encoders and decoders for vector signaling codes | |
CN104467865B (zh) | 串行通信协议控制器、字节拆分电路及8b10b编码器 | |
CN102681971B (zh) | 一种基于aurora协议进行FPGA板间高速互连的方法 | |
CN104808966B (zh) | 有效编码的方法和装置 | |
CN104954096A (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
EP1397748A2 (en) | Parallel data communication having skew intolerant data groups | |
CN104426629A (zh) | 一种物理层编解码方法及其装置 | |
CN104579583A (zh) | 一种对8b/10b编码方式的改进方法 | |
WO2005096575A1 (en) | A circuit arrangement and a method to transfer data on a 3-level pulse amplitude modulation (pam-3) channel | |
US20210105023A1 (en) | Efficient data encoding | |
CN204256732U (zh) | 基于PCI-Express接口的高速数据传输装置 | |
CN105072058B (zh) | 一种基于光纤传输的数据正反相位编码方法及数据传输方法 | |
TW201427349A (zh) | 同步序列資料傳輸方法與電路裝置 | |
CN101442380B (zh) | 基于高速串行接口编码方式的误码率测试方法与装置 | |
CN101228698B (zh) | 4电平逻辑解码器以及解码4电平输入数据信号的方法 | |
CN103166732B (zh) | 时脉嵌入的数据传输方法以及封包数据编码/解码方法 | |
CN105791850B (zh) | 一种编码器及其编码方法、解码器及其解码方法 | |
CN108023680A (zh) | 基于vtdm帧结构的低速可变速率多模式编码调制器 | |
CN103138889A (zh) | 高速8b/10b编码装置及编码器 | |
CN104009823B (zh) | 一种SerDes技术中的错位检测与纠错电路 | |
CN103023610B (zh) | 485接口的数据传输方法和装置 | |
CN205212819U (zh) | 一种基于cpld的hdb3编译码器电路 | |
CN105760329B (zh) | 一种减少总线耦合翻转的编解码装置 | |
CN102420675A (zh) | 数据报文缓冲存储的使用状态信息的收发方法及装置 | |
CN103001901B (zh) | 一种基于mdpcm的集成电路高速数字接口模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |