随着集成电路与工艺技术的发展,现在单芯片的处理能力越来越强,传统的加密算法DES已经被证明不太安全了,为此美国国家标准技术研究院(NIST)于2001 年11 月26 日发布了新的加密算法AES用来取代DES算法,并于2002年5月26日制定了新的高级加密标准(AES)规范。,如今AES加密算法已经在金融、电信等多方面获得了广泛的应用。本文基于Spartan-3E FPGA设计AES加解密模块,由于应用中数据吞吐量不大,所以主要的重点是尽量减少面积来实现设计。
一、算法简介
根据AES标准,加密过程主要包括四种操作,分别为字节代换、行移位、列混合和轮密钥加。字节替代是对State中每个字节进行的一个独立非线性变换,一般由查表得到。行移位就是State行进行不同的移位,第一行不移,第二行左移一个字节,第三行左移二个字节,第四行左移个三字节。列混合为有限域GF(28)上的多项式运算。轮密钥加就是数据和密钥的异或。
加密流程用伪码表示如下:
Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[0, Nb-1]) //轮密钥加
for round = 1 step 1 to Nr–1
大型的设计或时序关键性模块的编译时间往往比较长,在常规的设计流程中,设计中任何小的改动都将需要对整个设计重新执行一遍编译、综合、布局布线等步骤,所以效率比较低。为解决这个问题,”赛灵思提出了partition和smart guide编译技术用来提高设计效率,可能很多朋友都没有注意到这两个工具,但使用起来倒是很简单的,”赛灵思有一篇文档感兴趣的朋友可以参考一下:
http://www.xilinx.com/support/documentation/application_notes/xapp918.pdf
下面简单说明下这两个工具的使用:
一、smart guide的使用
SmartGuide将用户指定的以前实现的设计和当前实现进行比较,然后尽可能保留设计的未变更部分。如果需要满足时序目标并生成成功的实现,就会重新实现保留的设计部分。
SmartGuide 适用于整个设计,如要使用SmartGuide技术,在ISE界面左边的SOURCES里右键点击顶层模块,选择SmartGuide…, 如下图一示:
PicoBlaze微控制器是赛灵思推出的一个高性能低成本的8位处理器软核,它由VHDL语言实现,可以在FPGA/CPLD上实现,具有设计灵活方便,运行速度快,占用资源少的特点。虽然现在32位处理器大为盛行,但在一些低速的复杂控制方面使用PicoBlaze微控制器具有较大的成本优势,在这些应用中使用PicoBlaze微控制器将是一个比较好的方案。并且个人认为,PicoBlaze微控制器的实现代码对用户是公开的,可使用户完全掌握设计中的所有细节,方便调试与使用,设计者甚至可以修改代码、增加和减少功能块来定制自己专用的处理器,体现了极大地灵活性,在低成本的场合使用还是相当不错的。下面介绍使用PicoBlaze微控制器方面的一点心得与技巧。
一、PicoBlaze结构概述
PicoBlaze微控制器由16 字节的通用寄存器、1K×18 BIT ROM、1个字节宽度ALU、64 字节的内部RAM和程序计数器等组成,具体框图如下图一所示(摘自赛灵思文档ug129.pdf):
第四讲 PC-CFR的使用细节问题(三)
本节想跟大家探讨一下关于PC-CFR IP核的reset输入信号的使用注意事项。
reset输入信号不是我们大家一开始接触想象的那样是进行IP核的all logic进行复位操作。它仅仅是停止allocator等相关逻辑的调度。
为了安全起见使得CFR输出正确无误的数据,我们在使用它的时候,必须保证该reset输入信号的有效信号不低于512个clk周期。
到此CFR有关的内容全部结束。以后准备写点LTE方面使用xilinx DPD IP Core的内容。
第三讲 PC-CFR的使用细节问题(二)
本节着重想跟大家探讨一下PC-CFR原型滤波器的一些注意事项。
我们知道BTS下行链路中的性能指标中需要通过频谱发射模板测试。影响该项测试是否通过有几次环节,其中PC-CFR原型滤波器如果进行了精心设计对该项测试的通过有不少影响。
原型滤波器的设计方法有很多,这里不进行逐一细数。我要跟大家推敲的是Xilinx的很多应用笔记都提到使用Chebysev滤波器效果最好。我也进行了尝试,设计不同的滤波器,发现Chebysev滤波器的确性能不错。现在存在疑惑,还有没有更好的设计方法,希望各位看了我的博文后谈论一下,hebysev滤波器的确性能不错真正原因,和更优秀的设计方法。
另外设计滤波器的时候,将系统设定的发射功率值归一化处理到频谱发射模板上,然后给原型滤波器留够20dB的余量,参考这些值进行原型滤波器的设计也是比较好的办法之一。不过话说回来,这个方法我感觉不太实用仅供参考!这个方法其实是设计根升余弦滤波器时使用的方法。
第二讲 PC-CFR的使用细节问题(一)
本节着重想跟大家探讨一下关于PC-CFR 两级Iteration的原因和如何合理设置削峰门限来达到提高性能
阅读XAPP1033可以发现,在实际应用时,PC-CFR解决方案可以提供多种不同的配置,其中就有使用“两级Iteration”。
第一讲 PC-CFR的使用前提条件。
(1)PC-CFR在系统设计上也是需要考虑Sampling Rate与信号带宽的关系Sampling Rate必须是信号带宽的3倍;当信号是多载波配置,且载波间不连续,需要更高的Sampling Rate,一般Sampling Rate必须是信号带宽的5倍以上。
(2)PC-CFR对信号的是否是zero IF没有要求。但有意思的是,我们一般都是在DPD之前使用CFR,一般应用场景下信号都是zero IF。我通过Matlab仿真和平台实测,当信号不是zero IF情况下,CFR对PAR的改善影响甚微。
此文为“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品
最近一直很忙,Blog也很久没有更新了,很不好意思。现在马不停蹄的进行自己心得的分享。大家共勉!
Xilinx CFR解决方案。
目前Xilinx主推的CFR解决方案是峰值对消PC-CFR(Peak Cacellation-CFR)的方案。该解决方案跟噪声成形NS-CFR(Noise Shaping-CFR)相比它的优点有2处:1.采用峰值采样方式进行对消,计算量小,失真度低;
2.从灵活性来讲,它只需要改动成型滤波器或者说原型滤波器,能适应各种不同的空中接口标准,这点是该解决方案最大的优点。
其实PC-CFR的方案也是有缺点的,这个缺点Xilinx只字未提!它对相位有影响!具体原因我现在暂时不提供答案,给大家留一些思考的空间。
我将分陆续讲解使用PC-CFR的一些要多注意的地方。先从它的使用前提条件来讲。其实现架构方面可参考XAPP1033.这里就不进行画图图示了。
此文为“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品
最新评论
2 天 4 小时之前
2 天 4 小时之前
2 天 5 小时之前
2 天 8 小时之前
3 天 5 小时之前
5 天 3 小时之前
5 天 10 小时之前
5 天 23 小时之前
6 天 5 小时之前
6 天 9 小时之前