26
$OWHUD ৌ ᑈ AN-505-2.1 应用笔记 6XEVFULEH © 2011 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX are Reg. U.S. Pat. & Tm. Off. and/or trademarks of Altera Corporation in the U.S. and other countries. All other trademarks and service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera’s standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. 101 Innovation Drive San Jose, CA 95134 www.altera.com 3GPP LTE Turbo 参考设计 $OWHUD *33 /7( 7XUER খ㗗䆒䅵ሩ⼎њ䗮䖛Փ⫼ 7XUER ⷕˈᅲ⦄䞛⫼Ḑ㒜ℶᣕ ⱘ㓪ⷕˈҹঞᅲ⦄䞛⫼ᦤ㒜ℶᣕⱘ乍䫭䇃ℷ )(& 㓪ⷕDŽখ㗗䆒䅵䗖⫼Ѣ *33 䭓ᳳথሩ /7( 㗙 /7($ 䗮䘧व㗙Ϣ *33 ᡔᴃ㾘㣗ݐᆍⱘᏺ䇗㾷䇗 ᑨ⫼DŽ f 㽕њ㾷Ѣ *33 ᡔᴃ㾘㣗ⱘ䆺㒚ᙃˈ䇋খ㗗 *33 ᡔᴃ㾘㣗 *URXS 5DGLR $FFHVV 1HWZRUN (YROYHG 8QLYHUVDO 7HUUHVWULDO 5DGLR $FFHVV 0XOWLSOH[LQJ DQG &KDQQHO &RGLQJ 5HOHDVH 76 Y 0D\ খ㗗 7XUER 㾷ⷕᣕ䖲㓁ᑆᡄᢉ⍜ 6,& ᡔᴃˈ䆹ᡔᴃЎ䗮䘧㓪ⷕഛ㸵ᡔᴃ㹿 キ H1% ᬊ䞛⫼ˈҹᦤ催 /7( - $ޚⱘ৲䞣ᗻ㛑DŽ f 㽕њ㾷Ѣ /7($ ޚⱘᔎⱘ䆺㒚ᙃˈ䇋খ㗗 *33 㔥キ ZZZJSSRUJ Ϟⱘ /7( - $GYDQFHG 3K\VLFDO /D\HUDŽ ᑈˈ7XUER ⷕϔ㹿 %HUURX ㄝҎᦤ ᴹDŽҢℸˈӫ䗮ᄬ㋏ټ㒳Ёˈ⬅ Ѣ 7XUER ⷕⱘ䖥 6KDQQRQ 䰤㑴䫭㛑ˈՓᕫ 7XUER ⷕᏆ៤Ў佪䗝ⱘ㓪ⷕᡔᴃDŽ䖭ѯ ᑨ⫼ᣀ *33 ぎ䯈᭄㋏㒳䆶ਬӮ &&6'6 䘹⌟䗮䘧㓪ⷕˈᖂ⊶ᄬপ⧗Ѧ䗮 :L0$; ҹঞ *33 /7( 䖭ѯᑨ⫼ⱘᅲ⦄᠔䳔㽕ⱘ৲䞣ϸⱒⱒ 0ESV ⱘ㣗 DŽൟⱘ䜡㕂䆒㕂ϟˈ$OWHUD *33 /7( 7XUER 㾷ⷕ⒵䎇 *33 /7( ⱘⳂ催᭄ Ϟ㸠䗳⥛ˈᑊᦤկ 0ESV ৲⥛DŽ f 㽕њ㾷Ѣ 7XUER ⷕⱘ䆺㒚ᙃˈ䇋খ㗗 & %HUURX $ *ODYLHX[ DQG 3 7KLWLPDMVKLPD 1HDU 6KDQQRQ /LPLW (UURU&RUUHFWLQJ &RGLQJ DQG 'HFRGLQJ 7XUER &RGHV LQ 3URFHHGLQJV RI WKH ,((( ,QWHUQDWLRQDO &RQIHUHQFH RQ &RPPXQLFDWLRQV SS 7XUER 㓪ⷕ *33 /7( 㾘㣗Ёᣛᅮⱘ *33 /7( 7XUER 㓪ⷕՓ⫼ᑊ㸠㑻㘨ⱘो⿃ⷕDŽ䗮䖛ो⿃㓪ⷕ ᇍϔϾᙃᑣ䖯㸠㓪ⷕˈ䗮䖛ϔϾो⿃㓪ⷕᇍ䆹ᙃᑣⱘѸ㒛⠜ᴀ䖯㸠㓪ⷕDŽ 3GPP LTE Turbo Reference Design

3GPP LTE Turbo参考设计3GPP LTE Turbo参考设计 Altera® 3GPP LTE Turbo参考设计展示了通过使用Turbo码,实现采用栅格终止支持 的编码,以及实现采用提前终止支持的前项错误校正(FEC)编码。参考设计适用于

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Altera 公司 2011 年 1 月

AN-505-2.1

© 2011 Altera Corporation. AlQUARTUS and STRATIX are All other trademarks and servwww.altera.com/common/leaccordance with Altera’s standwithout notice. Altera assumeservice described herein excepversion of device specification

101 Innovation DriveSan Jose, CA 95134www.altera.com

3GPP LTE Turbo Reference Design

3GPP LTE Turbo 参考设计

应用笔记

Altera® 3GPP LTE Turbo 参考设计展示了通过使用 Turbo 码,实现采用栅格终止支持

的编码,以及实现采用提前终止支持的前项错误校正 (FEC) 编码。参考设计适用于

3GPP 长期发展 (LTE 或者 LTE-A) 通道卡或者与 3GPP 技术规范相兼容的基带调制解调

器应用。

f 要了解关于 3GPP 技术规范的详细信息,请参考 3GPP 技术规范 : Group Radio Access Network, Evolved Universal Terrestrial Radio Access, Multiplexing and Channel Coding (Release 8), TS 36.212 v8.3.0, May 2007.

参考 Turbo 解码器支持连续干扰抵消 (SIC) 技术,该技术作为通道编码均衡技术被基

站 eNB 接收器采用,以提高 LTE- A 标准的吞吐量性能。

f 要了解关于 LTE-A 标准的增强的详细信息,请参考 3GPP 网站 (www.3gpp.org) 上的

LTE- Advanced Physical Layer。

1993 年,Turbo 码第一次被 Berrou 等人提出来。从此,在众多通信和存储系统中,由

于 Turbo 码的接近 Shannon 限纠错能力,使得 Turbo 码已成为首选的编码技术。这些

应用包括 3GPP, 空间数据系统咨询委员会 (CCSDS) 遥测通道编码,微波存取全球互通

(WiMAX), 以及 3GPP LTE, 这些应用的实现所需要的吞吐量在两百到几百 Mbps 的范

围。在典型的配置设置下,Altera 3GPP LTE Turbo 解码器满足 3GPP LTE 的目标高数

据上行速率,并提供 235Mbps 吞吐率。

f 要了解关于 Turbo 码的详细信息,请参考 C. Berrou, A. Glavieux, and P.

Thitimajshima, Near Shannon Limit Error-Correcting, Coding, and Decoding: Turbo Codes, in Proceedings of the IEEE International Conference on Communications, 1993, pp. 1064-1070.

Turbo 编码器3GPP LTE 规范中指定的 3GPP LTE Turbo 编码使用并行级联的卷积码。通过卷积编码器

对一个信息序列进行编码,通过另一个卷积编码器对该信息序列的交织版本进行编码。

Subscribe

l rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, Reg. U.S. Pat. & Tm. Off. and/or trademarks of Altera Corporation in the U.S. and other countries. ice marks are the property of their respective holders as described at gal.html. Altera warrants performance of its semiconductor products to current specifications in ard warranty, but reserves the right to make changes to any products and services at any time

s no responsibility or liability arising out of the application or use of any information, product, or t as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest s before relying on any published information and before placing orders for products or services.

2 Turbo 编码器

Turbo 编码器体系结构

Turbo 编码器是通过两个 8 状态构成编码器和一个 Turbo 码内部交织器来实现的

( 图 1)。

Turbo 编码器支持以下功能:

■ 3GPP LTE 和 LTE-A 标准。

■ 运行时可以对所有的 3GPP LTE 交织器模块大小进行选择。

■ 码率仅为 1/3。其它码率可以通过外部速率匹配来实现。

■ 在处理之前的数据块时,双缓冲支持编码器接收数据。

■ C/MATLAB 位精确模型,实现 RTL 测试矢量生成。

■ 采用 MegaWizard® Plug- In Manager,实现 VHDL 或者 Verilog HDL 测试台的自动生

成。

■ Avalon® Streaming (Avalon-ST) 接口。

■ OpenCore Plus 评估许可。

传输函数

并行级联卷积码的 8 状态构成码的传输函数是:

此函数中,go(D) = 1 + D2 + D3,g1(D) = 1 + D + D3。

当开始对输入位进行编码时,8 状态构成编码器的移位寄存器的初始值全部为零。

Turbo 编码器的输出是:

X0, Z0, Z’0, X1, Z1, Z’1, ..., XK–1, ZK–1, Z’K–1

这里:

■ 位 X0, X1, ..., XK–1 被输入到第一个 8 状态构成编码器以及内部交织器 (K 表示位

数)。

图 1. Turbo 编码器体系结构

上层编码器

下层编码器

交织器

输出

输入Xk XkXk

Zk

Z’kX’k

系统输出

G D( ) 1g1 D( )g0 D( )---------------,=

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

Turbo 编码器 3

■ 位Z0, Z1, ..., ZK–1和Z’0, Z’1, ..., Z’K–1分别从第一个和第二个8状态构成

编码器中输出。

■ 从内部交织器输出的位(并且输入到第二个8状态构成编码器)是X’0, X’1, ...,

X’K-1。

栅格终止

图 2 显示了一个采用栅格终止 ( 虚线所示 ) 的 1/3 速率的 Turbo 编码器的结构。

在对所有的信息比特编码后,通过从移位寄存器反馈中得到尾比特,来执行栅格终止。

在信息比特编码后填充尾比特。

前三个尾比特在第二个构成编码器禁用时终止第一个构成编码器 ( 图 2 中的上面开关

处于低位置 )。后三个尾比特在第一个构成编码器禁用时终止第二个构成编码器 ( 图 2

中的下面开关处于低位置 )。

那么栅格终止的已发送比特为:

XK, ZK, XK+1, ZK+1, XK+2, ZK+2, X’K, Z’K, X’K+1, Z’K+1, X’K+2, Z’K+2

内部交织器

输入到 Turbo 码内部交织器的位表示为 X0, X1, ..., XK–1,这里的 K 代表输入位的数

量。从 Turbo 码内部交织器输出的位表示为 X’0, X’1, ..., X’K–1。

输入与输出位之间的关系是:

X’i = Xπ(ι), i = 0, 1, ..., K–1

这里输出指数 i 与 输入 π(i) 指数之间的关系满足下面的二次型:

π(i) = (f1 i + f2 i2)modK

参数 f1 与 f2 取决于模块大小 K。表 1 列出了 3GPP 技术规范中指定的交织器参数。

图 2. 1/3 速率 Turbo 编码器的结构

交织器

输出

DDD

DDD

Z’k

Zk

Xk

X’k

X’k

Xk输入

第二个构成编码器

第一个构成编码器

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

4 Turbo 编码器

f 要了解关于 3GPP 技术规范的详细信息,请参考 3GPP 技术规范 : Group Radio Access Network, Evolved Universal Terrestrial Radio Access, Multiplexing and Channel Coding (Release 8), TS 36.212 v8.3.0, May 2007.

表 1. Turbo 码内部交织器参数 (1/2)

i Ki f1 f2 i Ki f1 f2 i Ki f1 f2 i Ki f1 f2

1 40 3 10 48 416 25 52 95 1120 67 140 142 3200 111 240

2 48 7 12 49 424 51 106 96 1152 35 72 143 3264 443 204

3 56 19 42 50 432 47 72 97 1184 19 74 144 3328 51 104

4 64 7 16 51 440 91 110 98 1216 39 76 145 3392 51 212

5 72 7 18 52 448 29 168 99 1248 19 78 146 3456 451 192

6 80 11 20 53 456 29 114 100 1280 199 240 147 3520 257 220

7 88 5 22 54 464 247 58 101 1312 21 82 148 3584 57 336

8 96 11 24 55 472 29 118 102 1344 211 252 149 3648 313 228

9 104 7 26 56 480 89 180 103 1376 21 86 150 3712 271 232

10 112 41 84 57 488 91 122 104 1408 43 88 151 3776 179 236

11 120 103 90 58 496 157 62 105 1440 149 60 152 3840 331 120

12 128 15 32 59 504 55 84 106 1472 45 92 153 3904 363 244

13 136 9 34 60 512 31 64 107 1504 49 846 154 3968 375 248

14 144 17 108 61 528 17 66 108 1536 71 48 155 4032 127 168

15 152 9 38 62 544 35 68 109 1568 13 28 156 4096 31 64

16 160 21 120 63 560 227 420 110 1600 17 80 157 4160 33 130

17 168 101 84 64 576 65 96 111 1632 25 102 158 4224 43 264

18 176 21 44 65 592 19 74 112 1664 183 104 159 4288 33 134

19 184 57 46 66 608 37 76 113 1696 55 954 160 4352 477 408

20 192 23 48 67 624 41 234 114 1728 127 96 161 4416 35 138

21 200 13 50 68 640 39 80 115 1760 27 110 162 4480 233 280

22 208 27 52 69 656 185 82 116 1792 29 112 163 4544 357 142

23 216 11 36 70 672 43 252 117 1824 29 114 164 4608 337 480

24 224 27 56 71 688 21 86 118 1856 57 116 165 4672 37 146

25 232 85 58 72 704 155 44 119 1888 45 354 166 4736 71 444

26 240 29 60 73 720 79 120 120 1920 31 120 167 4800 71 120

27 248 33 62 74 736 139 92 121 1952 59 610 168 4864 37 152

28 256 15 32 75 752 23 94 122 1984 185 124 169 4928 39 462

29 264 17 198 76 768 217 48 123 2016 113 420 170 4992 127 234

30 272 33 68 77 784 25 98 124 2048 31 64 171 5056 39 158

31 280 103 210 78 800 17 80 125 2112 17 66 172 5120 39 80

32 288 19 36 79 816 127 102 126 2176 171 136 173 5184 31 96

33 296 19 74 80 832 25 52 127 2240 209 420 174 5248 113 902

34 304 37 76 81 848 239 106 128 2304 253 216 175 5312 41 166

35 312 19 78 82 864 17 48 129 2368 367 444 176 5376 251 336

36 320 21 120 83 880 137 110 130 2432 265 456 177 5440 43 170

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

Turbo 编码器 5

双缓冲

数据通路是双缓冲的,在对之前的模块进行编码时,支持对新的数据模块移位。这一

技术降低了 I/O 操作中的延迟,充分利用硬件,并提高整体的吞吐量。

输入数据格式

大小为 K 的模块所要求的输入数据排序是:

X0, X1, X2, . . . . XK - 1

输出数据格式

输出数据为三比特宽。表 2列出了大小为 K 的模块的排序。

37 328 21 82 84 896 215 112 131 2496 181 468 178 5504 21 86

38 336 115 84 85 912 29 114 132 2560 39 80 179 5568 43 174

39 344 193 86 86 928 15 58 133 2624 27 164 180 5632 45 176

40 352 21 44 87 944 147 118 134 2688 127 504 181 5696 45 178

41 360 133 90 88 960 29 60 135 2752 143 172 182 5760 161 120

42 368 81 46 89 976 59 122 136 2816 43 88 183 5824 89 182

43 376 45 94 90 992 65 124 137 2880 29 300 184 5888 323 184

44 384 23 48 91 1008 55 84 138 2944 45 92 185 5952 47 186

45 392 243 98 92 1024 31 64 139 3008 157 188 186 6016 23 94

46 400 151 40 93 1056 17 66 140 3072 47 96 187 6080 47 190

47 408 155 102 94 1088 171 204 141 3136 13 28 188 6144 263 480

表 1. Turbo 码内部交织器参数 (2/2)

i Ki f1 f2 i Ki f1 f2 i Ki f1 f2 i Ki f1 f2

表 2. Turbo 编码器输出数据排序

输出数据source_data

2 1 0

0 Z ’0 Z0 X0

1 Z ’1 Z1 X1

… … … …K - 1 Z ’K - 1 ZK - 1 XK - 1

K XK + 1 ZK XK

K + 1 ZK + 2 XK + 2 ZK + 1

K + 2 X ’K + 1 Z ’K X ’K

K + 3 Z ’K + 2 X ’K + 2 Z ’K + 1

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

6 Turbo 编码器

延迟计算

编码延迟 D 代表对整个模块数据进行编码所使用的时钟周期数。如果 K 是模块大小,

则 D = K + 14。

编码延迟不包括加载延迟,加载延迟需要与模块大小 K 相同的时钟周期,以将输入数

据加载到输入缓冲中。

例如:

■ 当 K = 6144, D = 6144 +14 = 6158

■ 当 K = 40, D = 40 + 14 = 54

然后通过下面的公式可以计算出编码延时 ( 编码器对整个模块编码所使用的时间 ):

s

公式中的 fMAX 代表系统时钟速度。

对于上面的例子,当 fMAX = 245 MHz 时, L 分别等于 0.22 μs 和 25.13 μs。

吞吐量计算

通过下面的公式计算吞吐量:

bps

对于前面章节中的例子,T 分别等于 181.48 Mbps 和 244.44 Mbps。

测试矢量生成

需要下面的文件来执行 RTL 仿真:

■ ctc_encoder_input.txt

■ ctc_encoder_input_info.txt

一个测试用例位于 <Turbo 安装路径 >/turbo/lib/test_files 中。

通过下面的步骤,使用已提供的系统来生成您的测试矢量:

1. 运行 MATLAB (2007b 或更新版本 )。

2. 将工作目录改成 <Turbo 安装路径 >/turbo/cml。

3. 输入下面命令:

Cml_Startup ↵

4. 输入下面命令来建立一个 test 子目录:

mkdir ../test ↵

5. 输入下面命令:

[sim_param, sim_state] = CmlSimulate('Scenarios_LTE_ENCODER_RTL',

[832 832 832 40 48 56 6144]); ↵

L DfMAX-------------=

TK fMAX×

D------------------------=

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

Turbo 解码器 7

这一命令用于生成测试矢量,对解码器提供模块大小为 832 的三次输入,接着是 40,

48, 56 和 6144,以作为最后的模块。可以修改该矩阵以满足测试要求。

当命令成功地运行,文件会出现在测试矢量目录 <Turbo 安装路径 >/turbo/test 中,

可以通过修改 Scenarios_LTE_ENCODER_RTL.m 文件中的参数 dump_dir 来更改这一位

置。并将这些文件复制到 Quartus II 工程目录中。

软件仿真模型生成下面三个文件:

■ ctc_encoder_input.txt

■ ctc_encoder_input_info.txt

■ ctc_encoder_output_gold.txt

RTL 仿真后,另一个文件 ctc_encoder_output.txt 被创建,该文件应该与

ctc_encoder_output_gold.txt 内容相匹配。

要了解关于如何运行 RTL 仿真,请参考第 24 页的仿真设计。

Turbo 解码器图 3 显示了 Turbo 解码器的结构。

Turbo 解码器由两个以迭代方式运行的软输入软输出 (SISO) 解码器组成。第一个解码

器 ( 上层解码器 ) 的输出送至第二个译码器,来形成一个 Turbo 解码迭代。交织器和

解交织器模块在这一过程中对数据重新进行排序。

Turbo 编码器支持下列功能:

■ 3GPP LTE 标准。

图 3. Turbo 解码器体系结构

图 3 注释:

(1) 仅在 Turbo SIC and Extrinsic Input Information 被使能时存在。

(2) LLR 输出仅在 Turbo SIC 配置被使能,并且其它硬比特被输出时存在。

(3) 仅在 Turbo SIC and Extrinsic Output Information 被使能时存在。

上层解码器

下层解码器

r(Xk)

r(Zk)

r(Z’k) 解交织器

交织器

交织器

Ex_out (3)

Ex_in (1)

Xk / LLR (Xk) (2)Zk / LLR (Zk) (2)Z’k / LLR (Z’k) (2)

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

8 Turbo 解码器

■ 连续接口取消 (SIC),实现 LTE-A 通道编码在 LTE 上的增强。

■ 交织器大小与迭代次数的运行时参数。

■ 采用循环冗余校验 (CRC) 的提前终止支持。

■ 编译时间参数,用于并行引擎数,解码算法的选择,输入精度以及输出大小。

■ 在处理之前数据块时,允许解码器接收数据,从而使双缓冲支持已减少的延迟实时

应用

■ 不需要外部存储器。

■ C/MATLAB 位精确模型,实现性能仿真或者 RTL 测试矢量的生成。

■ 使用 MegaWizard Plug- In Manager,生成 VHDL 或者 Verilog HDL 测试台。

■ Avalon Streaming (Avalon-ST) 接口。

■ OpenCore Plus 评估许可。

解码算法

以下是所支持的最大后验概率 (MAP) 解码算法的两个变量:

■ LogMAP— 用于 MAP 的对数域,并提供良好的误码率 (BER),但是消耗更多的逻辑资

源。当前不完全支持这一选项。要获取更多信息,请与 Altera 取得联系。

■ MaxLogMAP—LogMAP 的简化版本,相对于 LogMAP 变量,以略有降低的 BER 性能为代

价,来消耗更少的逻辑资源。该参考设计中实现的 MaxLogMAP 算法是由比例因子校

正过的 MaxLogMAP 版本。

f 要了解关于MaxLogMAP Turbo解码器的详细信息,请参考J. Vogt, A. Finger,

Improving the Max-Log-MAP Turbo Decoder, Electronics Letters, 36(23), 1937- 1939, 2000.

输入数据格式

表 3 列出了 Turbo 解码器所需要的输入数据排序。

表 3. Turbo 解码器输入数据排序 (1/2)

输入数据sink_data

3N-1 downto 2N 2N-1 downto N N-1 downto 0

0 Z ’0 Z0 X0

1 Z ’1 Z1 X1

… … … …K - 1 Z ’K - 1 ZK - 1 XK - 1

K XK + 1 ZK XK

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

Turbo 解码器 9

Turbo 解码器要求所有的数据为对数似然格式。相连接的系统必须提供软信息,根据下

面的公式,包括奇偶 1 位序列和 2 位序列:

对数似然值是对数的概率,也就是,接收位为 1,除以该位为 0 时的概率,由二补数表

示。一个零值表明了 1 和 0 的相同概率,用于增信删余。最负二补数没有被使用,以

使得代表性平衡。

表 4 列出了 4 位映射值。

输出数据格式

输出位 (OUT_WIDTH_g) 的数量可以被指定为 1 位或者 8 位宽。对于 1 位宽,排序为:

X0, X1, X2, . . . . XK-1

K + 1 ZK + 2 XK + 2 ZK + 1

K + 2 X ’K + 1 Z ’K X ’K

K + 3 Z ’K + 2 X ’K + 2 Z ’K + 1

表 3注释:

(1) N 代表输入比特数 (IN_WIDTH_g)。

表 4. 输入值

输入 (3 downto 0) 值

0111 1 的最大似然

… …0001 1 的最小似然

0000 0 或 1 的相同概率

1111 0 的最小似然

… …1001 0 的最大似然

1000 未使用

表 3. Turbo 解码器输入数据排序 (2/2)

输入数据sink_data

3N-1 downto 2N 2N-1 downto N N-1 downto 0

L x( ) P x 1=( )P x 0=( )----------------------log=

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

Page10

Turbo解

码器

3GPP LTE Turbo Reference Design

Jan

uar

y 2011

Alt

era

Corpo

ration

_out 在这里表示为 Ei, 而 Xi, Zi 和

N_WIDTH_g+5 指定。

,以及解码器中可用的引擎数。

其中的一个公式计算出解码延迟 D :

1 0

Z1Z’1 E0X0Z0Z’0

Z9Z’9 E8X8Z8Z’8

.. ...

XK-7ZK-’K-7

EK-8XK-8ZK-8Z’K-8

表 5 列出了 8 位输出数据排序。

表 6 列出了当非本征的输出被使能时 ,Turbo SIC 配置的输出数据排序。非本征的输出 Ex

Z’i 代表 LLR 输出,分别用于系统和奇偶校验位 1 和 2。这些输出的数据宽由配置变量 I

延迟计算

解码延迟 D 是用于整个模块数据编码的时钟周期数。这取决于模块大小,执行的迭代次数

下面的计算中假设没有发生提前中止,所以也就是最坏情况下延迟。

其中,K 是模块大小,I 是解码迭代次数,N 是解码器中指定的引擎数。然后,可以使用下面

■ 若 K < 264, 则 D = 26 + (2 × f(K,N) + 14) × 2 × I

■ 若 If K ≥ 264, 则 D = 26 + (f(K,N) + 46) × 2 × I

表 5. 8 位输出数据排序

输出排序

source_data

7 6 5 4 3 2 1 0

1 X7 X6 X5 X4 X3 X2 X1 X0

2 X15 X14 X13 X12 X11 X10 X9 X8

... ... ... ... ... ... ... ... ...

K/8 XK - 1 XK – 2 XK – 3 XK – 4 XK – 5 XK – 6 XK – 7 XK – 8

表 6. Turbo SIC 配置输出数据排序

输出排序

source_data

7 6 5 4 3 2

1 E7X7Z7Z’7 E6X6Z6Z’6 E5X5Z5Z’5 E4X4Z4Z’4 E3X3Z3Z’3 E2X2Z2Z’2 E1X1

2 E15X15Z15Z’15 E14X14Z14Z’14 E13X13Z13Z’13 E12X12Z12Z’12 E11X11Z11Z’11 E10X10Z10Z’10 E9X9

... ... ... ... ... ... ... .

K/8EK-1XK-1ZK-1Z’K-1

EK-2XK-2ZK-2Z’K-2

EK-3XK-3ZK-3Z’K-3

EK-4XK-4ZK-4Z’K-4

EK-5XK-5ZK-5Z’K-5

EK-6XK-6ZK-6Z’K-6

EK-77Z

Turbo 解码器 11

这里:

例如:

■ 若 K = 6144, N = 8, I = 8, 则 D = 26 + (6144/8 + 46) × 2 × 8 = 13,050

■ 若 K = 40, N = 8, I = 8, 则 D = 26 + (2 × 40/8 + 14) × 2 × 8 = 410

使用下面公式来计算解码延迟 ( 从解码器对整个模块进行解码,到已解码数据准备输

出所使用的时间 ):

s

这里的 fMAX 是系统时钟速度。

对于上面的列子 , 当 fMAX = 250 MHz,L 分别等于 52.2 μs 与 1.64 μs。

1 这些计算用于运行 8 次迭代 (I = 8) 的 Turbo 编码器,并假设没有出现提前中止。

吞吐量计算

使用下面的公式来计算吞吐量:

bps

对于之前章节中的例子,T 分别等于 117.7 Mbps 和 24.38 Mbps。

1 这些计算用于运行 8 次迭代 (I = 8) 的 Turbo 编码器,并假设没有出现提前中止。

提前中止支持

LTE Turbo 参考设计的这一版本通过使用 CRC24A 或者 CRC24B 来支持提前中止。 ( 要获

得详细信息,请参 3GPP 技术规范 )。

由 SISO 解码器输出 ( 第 7 页图 3 中上层以及下层解码器 ) 生成的 CRC 校验和在每一次

迭代后都会被检查。与其直到达到输入端口中指定的最大迭代次数才中止 Turbo 解码,

不如一成功生成 CRC 就中止。

提前中止可以降低功耗和整体延迟,并能够显著地提高上述预测的吞吐量。 另外,相

关文献也显示了提前中止能够增强解码器的 BER 性能。上述任何度量的增益都取决于

接收数据模块的信噪比 (SNR),模块大小,以及指定的迭代最大次数。

f K N,( )K N⁄ 如果K能被N整除

K 8⁄ 如果K不能被N整除

=

L DfMAX-------------=

TK fMAX×

D------------------------=

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

12 Turbo 解码器

测试矢量的生成

需要下面两个文件来执行 RTL 仿真:

■ ctc_input_info.txt

■ ctc_input_data.txt

一个测试用例位于 <Turbo 安装路径 >/turbo/lib/test_files 中。

按照下面的步骤,使用所提供的系统来生成您的测试矢量:

1. 运行 MATLAB(2007b 或者更新版本 )。

2. 将工作目录改成 <Turbo 安装路径 >/turbo/cml。

3. 输入下面命令:

Cml_Startup ↵

4. 输入下面命令来建立一个 test 子目录:

mkdir ../test ↵

5. 查看文件 Scenarios_LTE_CRC_ET_RTL.m 以获得参数信息,例如 NR, CRC 类型,以

及可能需要修改的 max_iterations 参数。所需的修改完成后保存文件。

1 要了解这些参数的详细信息,请参考 <Turbo 安装路径

>/turbo/cml/documentation 中的 readme.pdf 文件。

6. 输入下面命令:

[sim_param, sim_state] = CmlSimulate('Scenarios_LTE_CRC_ET_RTL',

[832 832 832 40 48 56 6144]); ↵

这一命令用于生成测试矢量,对解码器提供模块大小为 832 的三次输入,接着是 40,

48, 56 和 6144,以作为最后的模块。可以修改该矩阵以满足测试要求。

如果成功运行该命令,那么在测试矢量目录 <Turbo 安装目录 >/turbo/test 中会生成

一些文件,可以通过修改 Scenarios_LTE_CRC_ET_RTL.m 文件中的参数 dump_dir 来更

改这一位置。并将这些文件复制到 Turbo 编码器 Quartus II 工程目录中 ( 通过

MegaWizard Plug-In Manager 创建 )。

下面四个文件由软件仿真模型生成:

■ ctc_input_info.txt

■ ctc_input_data.txt

■ ctc_decoded_output_gold.txt

■ ctc_output_et_info_gold.txt

RTL 仿真后 , 生成另外两个文件 ctc_decoded_output.txt 和

ctc_output_et_info.txt,这两个文件应该与 ctc_decoded_output_gold.txt 和

ctc_output_et_info_gold.txt 文件内容相匹配。

要了解关于如何运行 RTL 仿真,请参考第 24 页的 “ 仿真设计 ”。

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

Avalon Streaming 接口 13

Avalon Streaming 接口Avalon Streaming (Avalon-ST) 接口由 Atlantic ™接口演变而来。Avalon-ST 接口定义

了一个标准的,灵活的,模块化的协议,实现从源接口到接收接口的数据传输,并简

化了控制数据通路中的数据流的过程。

Avalon-ST 接口信号能够描述传统的流媒体接口,在不通知通道或者数据包边界的情况

下,支持单一的数据流。这种接口通常包含数据,准备,和有效信号。另外,Avalon-

ST 接口也支持更复杂的协议,以实现含有多个通道上交错的数据包的突发和数据包传

输。

Avalon-ST 接口本质上可以同步多通道设计,以支持高效的,分时复用的实现,而无需

实现复杂的控制逻辑。

Avalon-ST 接口支持背压,这是一个流程控制机制,其中接收器向源发送信号,使源停

止发送数据。当接收器的 FIFO 缓冲器已满或者在输出上出现超负荷时,接收器通常使

用背压来停止数据流。

当设计一个数据通路,其中包括一个 3GPP LTE Turbo 参考设计时,如果获悉下游组件

可以随时接受数据,那么可能就不需要背压。通过驱动 source_ready 信号为高电

平,并且不连接 sink_ready信号,这样可能会达到更高的时钟速率。

该 3GPP LTE Turbo 参考设计中使用的 Avalon-ST 接口有一个零值 READY_LATENCY。

1 要了解关于 Avalon-ST 接口的详细信息,请参考 Avalon Interface Specifications。

处理数据包格式错误

Turbo 宏功能有两个错误端口,用来与系统中的数据错误进行通信:

■ Sink_error 是一个 2 位输入端口,接收预先错误信号。

■ Source_error是一个2位输出端口,表明存在一个(由Turbo宏功能或者之前模块

中其它地方发现的 ) 错误情况。

宏功能能够处理下面数据包格式相关的错误,并且能够从这些错误中恢复:

■ 如果在数据模块的输入期间从 sink_error端口接收到一个错误代码,那么Turbo

宏功能就会假设当前数据模块包含一些错误并且将数据丢弃。一旦错误信号被拉

低,Turbo 宏功能开始等待接收新的数据包 (sink_sop = 1, sink_valid = 1),并忽略数据输入,直到收到一个新的数据包。

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

14 系统要求

■ 如果存在一个错位的数据包起点(sink_sop)或者终点(sink_eop),则会根据错误类

型发出一个错误代码:

■ 01 -> 丢失数据包起点

■ 10 -> 丢失数据包终点

■ 11 -> 意外的数据包起点或者意外的数据包终点

■ 如果数据模块大小不被LTE标准支持,那么Turbo宏功能会发出一个值为11的错误信

号,并且忽略其余的数据模块,直到数据包的重新开始。

由于输入和输出端口上的数据模块和双缓冲的处理时间较长,因此输入数据中的错误

一出现,就会被报告出来。所以,在先前模块的输出过程中, source_error信号随时

可能被拉高。

当检测到一个错误时,错误代码只出现一个时钟周期。

如果有多个与特定数据块相关的错误,那么 Turbo 宏功能只显示首次检测到的错误的

错误代码。

需要几个时钟周期来报告在 source_error端口上检测到的错误。

错误恢复的异常

当检测到的错误非常接近数据包终点的边界 ( 也就是当存在丢失的数据包终点,意外

的数据包起点或者意外的数据包终点时),并且当存在一个模块,该模块紧跟着含有与

之前模块不同的 CRC 类型的错误模块时,Turbo 宏功能可能无法立即从错误中恢复。然

而,任何情况中的错误都会在 source_error端口中报告出来。

系统要求3GPP LTE Turbo 参考设计可以运行在 Windows XP 以及 Linux 工作站上,需要使用

Quartus II 9.0 或者更高版本。

安装参考设计3GPP LTE Turbo参考设计作为InstallShield 文件可以从Altera无线业务部门索取。

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

安装参考设计 15

图 4 显示了设计文件的目录结构。

OpenCore Plus 评估

使用 Altera 免费的 OpenCore Plus 评估功能,可以执行下列操作:

■ 在您的系统中对 3GPP LTE Turbo 参考设计进行仿真。

■ 验证设计功能,轻松迅速地评估出规模和速度。

■ 对包含宏功能的设计,生成有时限的器件编程文件。

■ 对器件编程,在硬件中验证设计。

当您对 OpenCore Plus 的功能以及性能感到十分满意,并打算将您的设计投入到生产

中时,您只需要购买一个许可。

购买许可后,您可以从 Altera 网站 www.altera.com/licensing 请求一个许可文件安

装到你的电脑中。请求时,Altera 会电邮给你一个 license.dat 文件。如果您不能上

网,那么请与您当地的 Altera 代表取得联系。

f 要了解关于 OpenCore Plus 硬件评估的详细信息,请参考 AN 320: OpenCore Plus Evaluation of Megafunctions。

OpenCore Plus 超时行为

OpenCore Plus 硬件评估支持以下两种操作模式:

■ 无限制 — 设计在有限时间里运行。

■ 有限制 — 需要板级与主机之间的连接。如果受限模式被设计中的所有宏功能支持,

则器件可以运行更长的时间,或者无限期运行。

图 4. 参考设计目录结构

cml 包含编码调制库(CML)仿真模型。 doc 包含用于介绍参考设计的应用笔记。 lib 包含加密的低级设计文件和其它支持文档。

<path>安装目录

turbo 包含参考设计文件和文档。

cmodel包含Turbo解码器C模型的实例代码。

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

16 入门指南

当达到最严格的评估时间,设计中所有的函数会同时超时。如果设计中有多个函数,

那么指定函数的超时行为可能会被其它函数的超时行为屏蔽。3GPP LTE Turbo 解码器

参考设计的无限制超时为 1 小时;有限制超时值是不定的。

当硬件评估时间终止, reset_n信号被强制拉低,使 3GPP LTE Turbo 解码器参考设计

永久保持在复位状态。

入门指南3GPP LTE Turbo 解码器参考设计安装完成后,在 Quartus II 中,MegaWizard Plug-in

Manager 的 Error Detection/Correction 部分中的 Turbo 宏功能是可用的。

MegaWizard Plug-in Manager 流实现了 Turbo 解码器的参数化,并且可以手动将宏功

能变量整合进 Quartus II 设计。按照下面步骤来使用 MegaWizard Plug-in Manager。

1. 通过使用 Quartus II 中 File 菜单的 New Project Wizard 来创建一个新的工程。

2. 点击 Tools 菜单上的 MegaWizard Plug-in Manager, 选择 Create a new custom

megafunction variation ( 图 5)。

3. 点击 Next, 在 Installed Plug-Ins 列表中,展开 DSP 部分,在 Error

Detection/Correction 宏功能中选择 Turbo v2.0( 图 6)。

图 5. MegaWizard Plug-In Manager

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

入门指南 17

1 如果 Turbo v2.0 没有出现在 MegaWizard Plug-In Manager 中 , 可能需要在

Quartus II 全局用户库中添加 <Turbo 安装路径 >/turbo/lib( 在 Tools 菜单

上,点击 Options)。

4. 验证器件系列与 New Project Wizard 中所指定的一致。

图 6. 选择 Turbo 宏功能

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

18 入门指南

5. 对宏功能变量指定顶级输出文件名,点击 Next 来显示参数编辑器 Parameter

Settings 标签 ( 图 7)。

6. 使用参数编辑器来指定所需要的参数。表 7 列出了参数的相关说明。

图 7. Parameter Settings 标签

表 7. 3GPP LTE Turbo 参数 (1/2)

参数 值 说明

Target

Stratix IV, Stratix III, Stratix II GX, Stratix II, Cyclone III, Arria II GX, Arria GX

显示了创建 Quartus II 工程时指定的目标器件系列。

Codec type Encoder, Decoder 选择生成编码器还是解码器。

Number of engines 2, 4, 8, 16 ( 注释 1) 选择解码器所使用的引擎数。

MAP decodingMaxLogMAP, LogMAP ( 注释2)

从解码算法列表中选择。

Number of input bits 4, 5, 6, 7, 8 ( 注释 1) 选择到解码器的输入比特数。

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

入门指南 19

7. 点击 Next 来完成参数配置,并显示 EDA 标签 ( 图 8)。

Number of output bits 8 ( 注释 3) 解码器上的输出比特数。

表 7注释:

(1) 已经对 6 输入比特的 2 引擎或者 8 输入比特的 8 引擎的参考设计作了测试。如果需要其他任何配置,请与 Altera 取得联系。

(2) 当前不支持 LogMAP 选项。

(3) 当前只支持 8 比特输出模式。

表 7. 3GPP LTE Turbo 参数 (2/2)

参数 值 说明

图 8. EDA 标签

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

20 入门指南

8. 在 EDA 标签中 , 点选 Generate Simulation Model。

1 IP 功能仿真模型是一个由 Quartus II 软件产生的周期精确的 VHDL 或者

Verilog HDL 模型。

c 仿真模型只能用于仿真,不能用于综合或者其它用途。将这些模型用于综合

会产生一个非功能性设计。

9. 一些第三方综合工具使用仅包含宏功能的结构,但不包含详细逻辑的网表来优化包

含宏功能的设计性能。如果您的综合工具支持这一功能,则开启 Generate

netlist。

10.点击 Next 来显示来显示 Summary 标签 ( 图 9)。

11.在 Summary 标签上 , 选择想要生成的文件。灰色的复选标记表明自动生成的文件。

所有其它文件都是可选的。

图 9. Summary 标签

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

入门指南 21

12.点击 Finish 生成宏功能和支持文件。生成阶段可能需要几分钟来完成。在报告窗

口中显示生成进度和状态。

f 要了解关于 MegaWizard Plug-In Manager 的详细信息,请参考 Quartus II Help。

生成的文件

表 8 列出了生成的文件以及可能位于工程目录中的其它文件。根据在参数化过程中指

定的变量名和 HDL 类型,文件名和类型会有所不同。例如,在 Verilog HDL 中创建的

设计与在 VHDL 中创建的设计,将分别生成一组不同的文件。

1 如果您在参数编辑器 Summary 标签中点选了 MegaCore function report file 复选框,

那么包含一列用于函数变量的设计文件和定义端口的生成报告文件将作为 HTML 文件保

存。

表 8. 生成的文件 ( 注释 1)

文件名 说明

<variation name>.bsf 宏功能变量的 Quartus II 符号文件。可以在 Quartus II 结构图编辑器中使用这一文件。

<variation name>.cmp宏功能变量的 VHDL 组件声明文件。添加该文件内容到用于例化宏功能的任何 VHDL 体系结构。

<variation name>.html 生成报告文件,包括用于宏功能变量的生成文件和报告列表。

<variation name>.qip 包括宏功能变量的 Quartus II 工程信息。

<variation name>.log 日志文件。

<variation name>.vhd, or .v宏功能变量文件,定义了定制宏功能的 VHDL 或者 Verilog HDL 顶层描述。对设计中该文件定义的实体进行例化。当在 Quartus II 中编译设计时包含该文件。

<variation name>.vho or .vo VHDL 或者 Verilog HDL IP 功能仿真模型。

<variation name>_bb.v宏功能变量的 Verilog HDL 黑盒子文件。当使用第三方 EDA 工具来综合您的设计时,使用此文件。

<variation name>_gb.v 一个时序与资源估算网表,用于一些第三方综合工具中。

<variation name>_nativelink.tcl 一个 Tcl 脚本,给 Quartus II 工程分配 NativeLink 仿真测试台设置。

<variation name>_quartus.tcl 一个 Tcl 脚本,能在 Quartus II 中执行编译。

<variation name>_tb.vhd, or .v宏功能变量的 VHDL 或者 Verilog HDL 测试台文件。当选择了 VHDL 顶层时,生成 VHDL 文件,或者,当选择了 Verilog HDL 顶层时,生成 Verilog HDL 文件。

<variation name>_hw.tcl一个硬件 Tcl 文件,很容易地将 Turbo IP 内核变量整合到 SOPC Builder。要查看 SOPC Builder 库中的 Turbo IP 内核变量,需要将工程源目录添加到 Options 标签中的 SOPC Builder IP 搜索路径。

表 8注释:

(1) 通过使用 MegaWizard Plug-In Manager 中指定的基输出文件名,前缀 <variation name> 会被自动添加。

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

22 入门指南

信号

生成函数报告也列出了宏功能变量端口。

表 9 列出了 Turbo 编码器信号。

表 10 列出了 Turbo 解码器信号。

表 9. 3GPP LTE Turbo 编码器信号

信号 方向 说明

clk 输入 时钟信号,同步所有的内部寄存器。

reset_n 输入低电平有效复位信号。接收数据前,宏功能必须始终被复位。如果宏功能没有被复位,那么由于反馈信号,Turbo 编码器可能会产生意想不到的结果。

sink_blk_size 输入 指定进入的模块大小。请参见第 4页表 1 中的参数 Ki。

sink_sop 输入 标识进入数据包的开始。

sink_eop 输入 标识进入数据包的结束。

sink_valid 输入当 sink_data上的数据有效时被置位。当 sink_valid没有被置位,过程停止,直到 sink_valid被重新置位。

source_ready 输入 如果能够接受数据,则被下游模块置位。

sink_data 输入 输入数据。(对于所需的数据排序,请参见第 5 页“输入数据格式”。)

sink_error 输入错误信号表明了输出端上的 Avalon Streaming 协议违规。 sink_error端口上的任何非零值都会导致Turbo 编码器忽略当前的数据模块。从该端口接收到的值在几个周期后被写入 source_error输出端口。

source_sop 输出 标识输出数据包的开始。

source_eop 输出 标识输出数据包的结束。

source_valid 输出 当存在输出的有效数据时,被宏功能置位。

sink_ready 输出 当宏功能能够接受数据时,开始显示。

source_error 输出

错误信号表明源端上的 Avalon-ST 协议违规:

00: 没有错误

01: 丢失数据包起点

10: 丢失数据包终点

11: 意外的数据包终点

其它类型的错误可能被标识为 11。

source_data 输出 输出数据。对于数据排序请参见第 5页表 2。

source_blk_size 输出 指定输出模块大小。此端口是测试台中的一个调试端口,可悬空。

表 10. 3GPP LTE Turbo 解码器信号 (1/2)

信号 方向 说明

clk 输入 时钟信号,同步所有内部寄存器。

reset_n 输入低电平有效复位信号。接收数据前,宏功能必须始终被复位。如果宏功能没有被复位,那么由于反馈信号,Turbo 解码器可能会产生意想不到的结果。

sink_blk_size 输入 指定进入模块大小 (请参见第 4页表 1 中的参数Ki)。

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

入门指南 23

sink_sop 输入 标识进入数据包的开始。

sink_eop 输入 标识进入数据包的结束。

sink_valid 输入当 sink_data上的数据有效时被置位。当 sink_valid没有被置位,过程停止,直到 sink_valid被重新置位。

source_ready 输入 如果能够接受数据,则被下游模块置位。

sink_data 输入 输入数据。( 对于所需要的数据排序请参见第 9页表 4。)

sink_error 输入错误信号表明了输出端上的 Avalon-ST 协议违规。 sink_error端口上的任何非零值都会导致 Turbo 编码器忽略当前的数据模块。从该端口接收到的值在几个周期后被写入source_error输出端口。

sink_max_iter 输入 指定半迭代的最大次数。

sel_CRC24A 输入

指定用于当前数据模块的 CRC 类型:

0: CRC24A

1: CRC24B

source_blk_id 输出 指定输出模块 ID。此端口是测试台中的一个调试端口,可悬空。

source_sop 输出 标识输出数据包的开始。

source_eop 输出 标识输出数据包的结束。

source_valid 输出 当存在输出的有效数据时,被宏功能置位。

sink_ready 输出 当宏功能能够接受数据时,开始显示。

source_error 输出

错误信号表明源端上的 Avalon-ST 协议违规:

00: 没有错误

01: 丢失数据包的起点

10: 丢失数据包的终点

11: 意外的数据包的终点

其它类型的错误可能被标识为 11。

source_data 输出 输出数据。( 对于数据排序,请参见第 18页表 7。)

source_blk_size 输出 指定输出模块大小。此端口是测试台中的一个调试端口,可悬空。

CRC_pass 输出

表明 CRC 是否成功:

0: 失败

1: 成功

CRC_type 输出

指明用于当前数据模块的 CRC 类型:

0: CRC24A

1: CRC24B

source_iter 输出 显示了半迭代的次数,在这一次数的半迭代后,解码器停止处理当前数据模块。

表 10. 3GPP LTE Turbo 解码器信号 (2/2)

信号 方向 说明

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

24 入门指南

仿真设计

通过使用 VHDL 或者 Verilog HDL IP 功能仿真模型和测试台,可以对设计进行仿真。

根据所指定的输出语言,IP 功能仿真模型可以是一个 .vo 或者 .vho 文件。对仿真环境

中的 .vo 或者 .vho 文件进行编译,以执行宏功能的定制变量的功能仿真。

f 要了解关于 IP 功能仿真模型的详细信息,请参考 Quartus II 手册的第 3 卷中的Simulating Altera Designs 章节。

使用 NativeLink 在第三方仿真工具中进行仿真

通过使用 NativeLink,您可以在 Quartus II 软件中的第三方仿真工具中执行仿真。

使用 Tcl 脚本文件 < 变量名 >_nativelink.tcl 来对 Quartus II 工程分配 NativeLink

测试台的默认设置。

按照下列步骤,使用 NativeLink 执行 Quartus II 软件中的仿真:

1. 创建一个定制宏功能变量,要保证指定的变量名要与 Quartus II 工程名相匹配。

2. 验证您的第三方 EDA 工具的绝对路径在 Quartus II 中的 Tools 菜单下的 Options

标签中被设置。

3. 在 Processing 菜单上,指向 Start,点击 Start Analysis & Elaboration。

4. 在 Tools 菜单上 , 点击 Tcl scripts。选择 < 变量名 >_nativelink.tcl Tcl 脚本,

点击 Run。查看信息,以确认成功地加载 Tcl 脚本。

5. 在 Assignments 菜单中,点击 Settings, 展开 EDA Tool Settings, 选择

Simulation。在 Tool name 下选择一个仿真器,然后在 NativeLink Settings 中 ,

选择 Compile test bench 并点击 Test Benches。确认相应的测试台设置已经应用

到 Quartus II 工程。

6. 在 Tools 菜单中 , 指向 EDA Simulation Tool,点击 Run EDA RTL Simulation。

f 要了解更多的相关信息,请参考 Quartus II 手册的第 3 卷中的 Simulating Altera Designs 章节。

编译设计与器件编程

您可以使用 Quartus II 软件来对设计进行编译。要了解关于编译设计的详细信息,请

参考 Quartus II 帮助中的 Setting up and Running a Compilation。

成功编译后,您可以对 Altera 目标器件进行编程并验证硬件中的设计。请参考

Quartus II 帮助来获得设计编程的指南。

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月

验证方法 25

验证方法下面的步骤描述了 3GPP LTE Turbo 参考设计的开发所用到的验证过程:

1. 通过采用仿真流程,将浮点仿真模型插入到测试矢量生成器 ( 图 10)。

2. 浮点模型的 BER 性能与参考 BER 性能相比较。

3. 开发定点模型以及调整参数 ( 例如比特数 ) 来检查是否到达了与参考类似的 BER 性

能。

4. 在 VHDL 中生成 RTL 模型。通过使用 ModelSim,对浮点和定点模型使用相同的测试

矢量生成套件,以测试 RTL。

5. 在 RTL 开发过程中,始终使用定点模型结果来验证结果。所有的 RTL 构造模块都有

各自的测试台,用来验证 RTL 模型与软件模型是否相匹配。

6. 在 RTL 实现的开发过程中,设计使用 Quartus II 软件作为综合布局和布线工具。

通过优化 RTL,来提高资源利用率和性能。

参考文献要了解关于 Turbo 码和 3GPP 规范的详细信息 , 请参考下面列出的参考文献:

1. Avalon Interface Specifications.

2. AN 320: OpenCore Plus Evaluation of Megafunctions.

3. 3GPP Technical Specification: Group Radio Access Network, Evolved

Universal Terrestrial Radio Access, Multiplexing and Channel Coding

(Release 8), TS 36.212 v8.3.0, May 2007.

4. C. Berrou, A. Glavieux, and P. Thitimajshima, Near Shannon Limit Error-

Correcting, Coding, and Decoding: Turbo Codes, in Proceedings of the IEEE

International Conference on Communications, 1993, pp. 1064-1070.

5. J. Vogt, A. Finger, Improving the Max-Log-MAP Turbo Decoder, Electronics

Letters, 36(23), 1937-1939, 2000.

图 10. Turbo 解码器验证方法

Turbo 解码器

BER解调

Input of调制

Turbo编码器K bits

3K+12 bits 加性白高斯噪声

Altera 公司 2011 年 1 月 3GPP LTE Turbo 参考设计

26 Turbo 码授权许可计划

Turbo 码授权许可计划

免责声明

法国电信,代表自己以及某些其他参与方,声称某些知识产权含盖了 Turbo 码技术,

并且已经决定,要根据称作 Turbo 码授权许可计划的授权许可计划,对这些权利进行

许可。该 IP 内核的提供不转让许可,也不意味着有权使用由法国电信,TDF 或者 GET

所拥有的任何的 Turbo 码专利。

要了解关于 Turbo 码授权许可计划的详细信息,请通过下面的地址与法国电信取得联

系:

France Telecom R&D

VAT/TURBOCODES

38, rue du Général Leclerc

92794 Issy Moulineaux

Cedex 9

France

文档修订历史表 11 显示了本文档的修订历史。

表 11. 文档修订历史

日期 版本 修订内容

2011 年 1月 2.1■ 更新到新的模板。

■ 添加了 SIC 的支持。

2010 年 1月 2.0 更新了 turbo 编码的 fMAX。

2009 年 6月 1.2 添加了 Turbo 编码的支持。

2009 年 2月 1.1.1 添加了数据包格式错误处理章节。

2008 年 9月 1.1 添加了含有 CRC 的提前中止支持。

2008 年 2月 1.0 本应用笔记的首次发布。

3GPP LTE Turbo 参考设计 Altera 公司 2011 年 1 月