




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA设计与应用 第第1 1章章 FPGAFPGA概述概述 1.1 1.1 FPGAFPGA的发展历程的发展历程 1.3 1.3 FPGAFPGA的设计方法的设计方法 1.2 1.2 FPGAFPGA的基本原理的基本原理 1.4 1.4 FPGAFPGA的设计流程的设计流程 1.5 1.5 总结与结论总结与结论 FPGA设计与应用 1.1 1.1 FPGAFPGA的发展历程的发展历程 可编程逻辑器件可编程逻辑器件( (PLD)PLD) 可可编编编编程程逻辑阵逻辑阵逻辑阵逻辑阵 列列 ( (PLA)PLA) 可可编编编编程程阵阵阵阵列列逻辑逻辑逻辑逻辑 ( (PAL)PAL) Xilinx Xilinx的的FPGAFPGAAlteraAltera的的CPLDCPLD 早期 FPGA FPGA设计与应用 1.2 1.2 FPGAFPGA的基本原理的基本原理 基于查找表的FPGA的基本结构及逻辑实现原理 FPGA的配置应用 基于乘积项的FPGA的基本结构及逻辑实现原理 FPGA设计与应用 1.2 1.2 FPGAFPGA的基本原理的基本原理 基于查找表的FPGA的基本结构及逻辑实现原理 查找表(Look Up Table,LUT)本质上就是一个RAM。目前FPGA中多 使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的161的 RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发 软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这 样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出 地址对应的内容,然后输出即可。 FPGA设计与应用 1.2 1.2 FPGAFPGA的基本原理的基本原理 基于乘积项的FPGA的基本结构及逻辑实现原理 这种FPGA的结构可分为三块:宏单元(Macrocell )、可编程连线(PIA)和I/O控制块。宏单元是器 件的基本结构,由它来实现基本的逻辑功能;可编 程连线负责信号传递,连接所有的宏单元;I/O控制 块负责输入输出的电气特性控制,比如可以设定集 电极开路输出,摆率控制,三态输出等。 INPUT/GCLK1,INPUT/GCLRn ,INPUT/OE1,INPUT/OE2是全 局时钟、清零和输出使能信号, 这几个信号有专用连线与器件中 每个宏单元相连,信号到每个宏 单元的延时相同并且延时最短。 FPGA设计与应用 1.3 1.3 FPGAFPGA的设计方法的设计方法 FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模 FPGA设计一般选择“自顶向下”的设计方法。 所谓“自顶向下”设计方法, 简单地说,就是采用可完全独立于芯片厂商及 其产品结构的描述语言,在功能级对设计产品进行定义, 并结合功能仿真技术,以 确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某 一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布 线结果还可反标回同一仿真器, 进行包括功能和时序的后验证,以保证布局布线 所带来的门延时和线延时不会影响设计的性能。 FPGA设计与应用 1.4 FPGA1.4 FPGA的设计流程的设计流程 第一步:按照“自顶向下”的 设计方法进行系统划分。 第二步:输入 VHDL/Verilog HDL代码 第三步:将以上的设计输 入编译成标准的 VHDL/Verilog HDL文件 ,然后将文件调入HDL仿 真软件进行功能仿真 第四步:利用综合器对源 代码进行综合优化处理, 生成门级描述的网表文件 第五步:如果整个设计超 出器件的宏单元或I/O单 元资源,可以将设计划分 到多片同系列的器件中。 第六步:将试配器产生的 器件编程文件通过编程器 或下载电缆载入到目标芯 片FPGA中 FPGA设计与应用 FPGA是近几年集成电电路中发发展最快的产产品。本章主要对对FPGA的发发展历历 程、结结构原理和设计设计 方法与流程做了介绍绍。随着可编编程逻辑逻辑 器件的高速发发 展,可编编程逻辑逻辑 器件将进进一步扩扩大其领领地。据IC Insights的数据显显示, 可编编程逻辑逻辑 器件市场场从1999年的29亿亿美元增长长到2004的56亿亿美元,几乎翻 了一番。可编编程逻辑逻辑 器件将继续继续 向着更高密度和更大容量方向迈进迈进 。 1.5 1.5 总结与结论总结与结论 FPGA设计与应用 第第2 2章章 硬件描述语言入门硬件描述语言入门 2.1 2.1 VHDLVHDL入门入门 2 2.3 .3 总结与结论总结与结论 2 2.2 .2 Verilog HDLVerilog HDL入门入门 FPGA设计与应用 2.1 2.1 VHDLVHDL入门入门 VHDL的模块组织 基本的数据类型及常量、变量、信号 运算符及表达式 VHDL基本语句 典型电路的设计 FPGA设计与应用 2.1 2.1 VHDLVHDL入门入门 VHDL的模块组织 在应应用VHDL描述数字系统结统结 构时时,我们们使用实实体(entity)-结结构 体( architecture )结结构。 实实体描述了数字系统统的输输入输输出接口,同时还时还 定义义了一些全局常 量以及与其他电电路(程序模块块或逻辑图逻辑图 模块块)之间间必要连连接的拓扑结结 构。但在实实体中,我们们并不对电对电 路的逻辑逻辑 做任何描述,可将其看成是一 个所谓谓的逻辑逻辑 “黑盒子”。很明显显,VHDL遵循EDA解决方案中自顶顶向下 的设计设计 原则则,并能够够保持良好的接口兼容性。 FPGA设计与应用 2.1 2.1 VHDLVHDL入门入门 基本的数据类型及常量、变量、信号 数据类型 VHDL标准数据类型包括整数(INTEGER)、实数(REAL )、位(BIT)、位矢量(BIT_VECTOR)、标准逻辑( STD_LOGIC)、标准逻辑矢量(STD_LOGIC_VECTOR)、布 尔量(BOOLEAN)、字符(CHARACTER)、字符串( STRING)及时间(TIME)类型。 为了给设计者提供自由度和灵活性,VHDL语言允许用户自 定义数据类型,命令为:TYPE 数据类型名 ,数据类型名 IS 数据类型定义 常量 常量在设计中不会发生变化,可以增加程序的可读性,书写格式 为: CONSTANT 常量名 ,常量名 :数据类型 := 表达式; 例如:CONSTANT WAIT:TIME:= 20ns; CONSTANT LEN:INTEGER:= 16; 变量 变量作用是对数据进行暂时存储,书写格式为: VARIABLE 变量名 ,变量名:数据类型 := 表达式; 例如:VARIABLE rd_en : STD_LOGIC : = 1; VARIABLE cnt: INTEGER ; 在变量说明中,可以直接赋给变量初始值,也可以不赋初始值, 如果没赋初始值,它默认为变量数据类型的最小值。 信号 在电路中,连线将元器件连接起来组成系统,在VHDL语言中, 信号就起着连线的作用,书写格式为: SIGNAL 信号名 ,信号名:数据类型 := 表达式; 例如: SIGNAL wr_en : STD_LOGIC: = 0; SIGNAL num1 , num2 : STD_LOGIC_VECTOR( 7downto 0 ); FPGA设计与应用 2.1 2.1 VHDLVHDL入门入门 运算符及表达式 VHDL基本语句 典型电路的设计 VHDL语言的运算符有四类:逻辑运算符、 算术运算符、并置运算符和关系运算符 传统的设计方式,设计者在他的CAD 工作站上以基本的电路组件来组织并构成 一个完整的逻辑功能,这些最基本的电路 组件如AND逻辑门、OR逻辑门或缓存器在 CAD工作站的屏幕中以线条和图案来表示 ,每个组件都必须清楚定义输出入信号和 功能。在VHDL的语言中,这种所谓的 SYMBOL不复存在,VHDL以实体的描述 来表示一个传统线路中的SYMBOL。 本节中主要通过例子程序使读者初步理 解VHDL的语法构成,书中介绍的是一个加 法器完整的VHDL语句描述,包括注释、库 文件说明、实体、结构体、进程语句、条 件语句、例化语句等。2个4位输入信号a和 b,进位输入cin,输出4位结果sum,输出 向下一极进位信号cout,整个程序都由组 合逻辑实现。 FPGA设计与应用 Verilog HDL的模块组织 基本的数据类型及常量、变量、信号 运算符及表达式 Verilog HDL基本语句 典型电路的设计 2 2.2 .2 Verilog HDLVerilog HDL入门入门 FPGA设计与应用 2 2.3 .3 总结与结论总结与结论 这一章我们主要学习了一些HDL语言的基本语法与我们以往学习的C语言 等、PASCAL等都有相似之处,要注意的是在学习中要有意识地把HDL语言的 语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握。 FPGA设计与应用 第第3 3章章 简单电简单电简单电简单电 路的路的HDLHDL设计设计设计设计 3.1 3.1 基本组合逻辑运算基本组合逻辑运算 3 3. .4 4 总结与结论总结与结论 3 3.2 .2 基本时序器件基本时序器件寄存器寄存器 3 3. .3 3 基本简单数学运算基本简单数学运算 FPGA设计与应用 3 3. .1 1 基本组合逻辑运算基本组合逻辑运算 与运算 或运算 异或运算 与非运算 2选1多路选择器 两位比较器 FPGA设计与应用 3 3. .2 2 基本时序器件基本时序器件寄存器寄存器 D触发器 T触发器 J-K触发器 时序器件移位寄存器 FPGA设计与应用 3 3. .3 3 基本简单数学运算基本简单数学运算 4位加法器 逐位进位加法器 超前进位加法器 进位选择加法器 输入数据同比特位进行运算时,都要等待前一比特 的进位信号状态完成(建议:用在位数不超过16位 的加法器)。对于多位逐位进位加法器来说,也可 采用流水方式改善性能。 输入数据同比特位进行运算时,不需要等待前一 比特的进位信号。实现速度比较快,但资源占用 也比较大。建议使用在16位加法器上比较合适。 对于位数较多的也可采用流水方式。 由三个加法器组成,一个计算低字节;两个计算 高字节。计算高字节的加法器一个令进位为1,另 一个令进位为0。三部分同时计算,最后,低字节 的进位选择是哪一个高字节器的输出。对于位数 较多的加法器,性能的提高比较明显,但资源相 对占用较多。 FPGA设计与应用 3 3. .3 3 基本简单数学运算基本简单数学运算 4位计数器 逐位进进位计计数器 格雷码码逐位计计数器 流水式超前进位计数器 逐位进位计数器的特点是:每一位都要等前一位的 进位输出有效后才开始变化,每一位模块之间用 进位信号连接起来(推荐使用长度不超过16位) 。 应用逐位进位计数器的原理,并在其基础上加以 改进,因为采用格雷码进行计数,每个状态变化 时,只有1位信号发生改变,减少了毛刺现象的发 生。 应用超前进位计数器的基本原理加以改进,使用流 水技术,减少了进位信号的传输延时,大大提高了 系统效率。 FPGA设计与应用 3 3. .3 3 基本简单数学运算基本简单数学运算 4位乘法器 组组合逻辑实现逻辑实现 的乘法器 移位相加乘法器 查查找表乘法器 移位相加乘法器实现简单 ,它的基本设计思想就 是采用一种称之为迭代的方式,根据乘数的每一位 是否为1进行计算,若为1则将被乘数移位相加, 这种实现方式使得在乘法计算中,每算出一乘积 项就加到乘积中,此时的积称作部分积。通过对 部分积的逐步移位完成乘积项与乘数的位对齐相 加,直至得出结果。这种方法硬件资源耗用较少 ,但一个4位乘法需要4个周期才能得到结果,速度 比较慢,也可采用这种思想,用全逻辑实现 ,但 延时较大。因此,在高速的应用系统中,一般不 采用该方法。 查找表乘法器的基本设计思路就是将乘积直接存 放在存储器中,将操作数(乘数和被乘数)作为地 址访问存储器,得到的输出数据就是乘法运算的 结果。 加法器树树乘法器 加法器树结合了移位相加乘法器和查找表乘法器 的优点。事实上,从下面的示意图可看出,它采 用了并行处理的架构,所以其速度快,由于主要采 用与门逻辑实现逻辑 功能,所以其资源耗费也较 少。 FPGA设计与应用 3 3. .4 4 总结与结论总结与结论 数字系统往往由数据通路和控制通路组成,本章主要 从RTL级对组成数字系统的基本模块进行讲解,可以说掌 握了这部分内容,就可以完成一些简单的数字系统的设 计了。 FPGA设计与应用 第第4 4章章 FPGAFPGA的同步的同步设计设计设计设计 4.1 4.1 同步的定义同步的定义 4.4 4.4 中央允许产生器中央允许产生器 4.2 4.2 同步部件同步部件 4.3 4.3 状态产生状态产生 4.7 4.7 异步接口异步接口 4.5 4.5 同步清除同步清除 4.6 4.6 时钟歪斜的清除时钟歪斜的清除 4.8 4.8 总结与结论总结与结论 FPGA设计与应用 4 4. .1 1 同步的定义同步的定义 对于静态同步设计, 我们称一个系统是同步的,假若: 1.每个边缘敏感部件的时钟输入是一次时钟输入的某个函数;并且仍是象 一次时钟那样的时钟信号。 2.所有存储储元件(包括计计数器)都是边缘边缘 敏感的,在系统统中没有电电平敏 感存储储元件。 FPGA设计与应用 4.2 4.2 同步部件同步部件 基本的同步部件 同步清除D型触发器 构成同步基本部件基础的是边缘敏 感D型触发器。其基本性质为,在 时钟CLK输入的上升边之后,D输入 端的逻辑值出现在Q输出端,而其 补值出现在Q非输出端。这一过程 就是取样过程。 我们希望FPGA有一个性能,即全局复 位,这是一个测试要求。在FPGA的同步 设计中应避免使用异步清除D型触发器 (它破坏了同步系统的两个条件), 应代之以同步清除。这样就产生了第 一个新的基本部件:带同步清除的D型 触发器 FPGA设计与应用 4.2 4.2 同步部件同步部件 T型触发器 E型触发器 最有用的存储单元之一是一种锁存器, 它能够保持一个数据直到通知它锁存另 一数据时为止,称为E型触发器。它有 一个从其输出端到其输入端的反馈环路 ,使其能保持数据长达若干个时钟周期 。 FPGA设计与应用 4.2 4.2 同步部件同步部件 R型触发器 同步RS触发器 请求(R型)触发器是唯一具有一个异步 电平敏感输入的,后者用于应答信号。 同步清除用于全局复位,如在测试中用, 它有两种结构。 同步RS触发器有两个清除端,一个本地 清除R和一个全局清除GC。 当复位端R和置位端S都为高电平时,没 有不确定状态。在同步RS触发器复位优 先于置位。 FPGA设计与应用 4.3 4.3 状态产生状态产生 状态的无条件执行 在所有标准部件中最重要的是同步二进制计数器(SBC), SBC有许多用途,其中一种 即状态产生. 通常用单状态译 码器完成状态的 无条件执行,此 译码器连接在主 计数器上。下图 所示为实现这一 原理的连续平均 电路。它顺序取 16项数据,并输 出其和。每16项 数据之和锁存于 输出寄存器,并 将累加器清除。 FPGA设计与应用 4.3 4.3 状态产生状态产生 状态的有条件执行 在所有标准部件中最重要的是同步二进制计数器(SBC), SBC有许多用途,其中一种 即状态产生. 在根据无条件 执行状态序列原则 设计的电路中,转 移仅限于用以实现 非二进制的无条件 转移类型是。其它 各种电路要求用有 条件转移或有条件 执行一状态序列。 FPGA设计与应用 4.4 4.4 中央允许产生器中央允许产生器 用不良设计方法设 计的中央时钟产生器, 可以用等效的同步式电 路取代。后者即中央允 许产生器。这一设计中 采用了本章介绍的所有 设计方法。图4-27中示 出的简单允许产生器能 够推广到和任何有条件 或无条件状态的执行相 结合。 FPGA设计与应用 4.5 4.5 同步清除同步清除 虽然本章中作为单元电路介绍的同步清除在功能上,在某些情况下,等效于异步 清除,但是当一电路有全局复位功能时优先选用同步清除的理由如下: 1、某些电路具有自己的同步清除功能。可以将其用于全局清除,以节省资源。 2、混合使用全局异步清除和局部同步清除会使电路功能混乱,导致产生异常情况 。 3、在许多情况下,采用同步清除的电路比异步的占用较少空间。 4、使RAM和寄存器列一类电路元件,初始化时,要求在连续几个时钟周期中清除, 这意味着同步清除。 FPGA设计与应用 4.6 4.6 时钟歪斜的清除时钟歪斜的清除 同步设计的最重要求之一是将时钟歪斜减小到可以接受的程度。假设时钟缓冲 符合第三章中的规则,则还有另外两种设计方法可以采用。 第一种情况是从一D型触发器的Q输出端直接馈给另一触发器的 D输入端时,延 迟不足以满足第二个D型触发器对保持时间的要求。解决方法是使用一个低驱动强度 的源D型触发器,并且不加缓冲。高的相对扇出有助于改进保持时间。 第二种设计设计 方法是在各个受时钟时钟 控制的部件之后分别别接入缓缓冲器,并在两个缓缓 冲输输出端之间间接一平衡网络络。若两支路由于某种原因不平衡,则则有一小电电流通过过网 络络,从而消除时钟时钟 歪斜。 FPGA设计与应用 4.7 4.7 异步接口异步接口 互相同步的系统 互相异步的系统 握手发送数据的安全性 同步系统的异步输入 亚稳定性 微处理器存储器映射中的FPGA FPGA设计与应用 4.7 4.7 异步接口异步接口 互相同步的系统 我们要讨论的第一种接口是普通的互相同步的两个同步系统的接口。 为了满足这一类的条件,两系统必须有一公共外部时钟。用允许标志如 图所示,通知在两系统之间传送数据。允许信号在时钟上升沿后经过时 钟至Q端的传播时间变为 有效,并保持有效至下一个时钟上升沿之后时钟 至Q端的时间。故它包含一有效时钟边缘 。 FPGA设计与应用 4.7 4.7 异步接口异步接口 互相异步的系统 更为常见的一类异步接口是互相异步的两个内部同步的系统之间的接 口。这时,重要的是,按照同步设计原理,处理请求的信号交换(握手) 功能需要采用R型触发器,其应用示于图中。 FPGA设计与应用 4.7 4.7 异步接口异步接口 同步系统的异步输入 本节讨论 一同步系统处理独立的异步输入的方法。若FPGA只要求对单个异步到达 的事件起响应,则存储立即式请求触发器,如图所示的电路,比同步R型触发器更简 单。它由一D型触发器构成,其D输入端接到逻辑“1”上,异步输入连接到其时钟端 。D型触发器用于此目的比异步RS触发器更适合,因为自边缘敏感D型触发器来的请求 ,在收到之后几乎立刻就被接收系统用上节所述方法消除。另一方面,电平敏感异步 RS触发器则要求输入端上的激励(它可能是逻辑电 平的阶跃变 化)去掉才行。 FPGA设计与应用 4.7 4.7 异步接口异步接口 握手发送数据的安全性 一般说来,围绕握手过程的保护措施愈多,数据完整性愈大,但是 系统性能愈低。当通过一异步接口发送数据时,数据错误概率可以小到 忽略不计,但是要以系统带宽作为代价。 FPGA设计与应用 4.7 4.7 异步接口异步接口 微处理器存储器映射中的FPGA 使FPGA和一微处理器通信的简单方法是把它放在微处理器的存储 器映射中。微处理器,利用片选和写允许(WE)控制线,记入数据或 查询数据位置,就好像FPGA是RAM。WE的上升沿使数据存储在FPGA 输入端的电平敏感锁存器中,同时使一异步式请求触发器置位。 FPGA设计与应用 4.7 4.7 异步接口异步接口 亚稳定性 用于对输入数据流取样的边 缘敏感触发器,只要在有效时钟 边缘的两边的临界建立和保护时 间中保持稳定则将正确地锁存数 据。若在此期间输入数据改变, 则输出将不能预测,产生所谓亚 稳定现象。触发器在回到一逻辑 状态之前可能进入高电平和低电 平之间的几种亚稳定序列之一, 如图所示。 FPGA设计与应用 4.8 4.8 总结与结论总结与结论 当数字系统的复杂度进一步提高,数据流的速度要求进一步提升时,IC设计 者就要很谨慎的考虑数字系统的时序问题,在对数字系统的定时关系进行准确的 分析的基础上掌握好同步技术是高水平的IC设计者所必需的,也值得每个FPGA设 计者研读。 FPGA设计与应用 第第5 5章章 常常见见见见的的FPGAFPGA设计实设计实设计实设计实 例例 5.1 5.1 移位寄存器设计实例移位寄存器设计实例 5.4 5.4 存储器设计实例存储器设计实例 5.2 5.2 计数器设计实例计数器设计实例 5.3 5.3 状态机设计实例状态机设计实例 5.5 5.5 门禁系统设计实例门禁系统设计实例 5.6 5.6 总结与结论总结与结论 FPGA设计与应用 5.1 5.1 移位寄存器设计实例移位寄存器设计实例 m序列的产生和性质 对具体某一信号的连续存储 m序列是最常用的一种伪随机序列, 它是最长线性反馈移位寄存器序列的简 称,是由带线性反馈的移位寄存器产生 的序列,并且具有最长周期。 在实际设计中,如密码门、ATM提款机一类需要手动输入信息的地方, 需要将某一具体信号进行连续存储,常会使用到这种移位寄存器。 FPGA设计与应用 5.2 5.2 计数器设计实例计数器设计实例 几种实际应实际应 用的计计数器电电路。 (1) 跟踪并计计算某一信号出现现的次数 (2) 作控制信号的条件 有时某些控制信号是根据计数器的某种状态的出现而发生改变, 计数器负责跟踪另外一个信号,例如移位寄存器在先动作一拍的前 提下才进行下一步的操作,或在动作几拍,或在另一个信号出现几 次的情况下改变以前的动作状态等情况。计数器在这种情况下起到 了过渡性作用。 FPGA设计与应用 5.3 5.3 状态机设计实例状态机设计实例 状态态机可以认为认为 是组组合逻辑逻辑 和寄存器逻辑逻辑 的特殊组组合,它一般包括 两个部分:组组合逻辑逻辑 部分和寄存器部分。寄存器用于存储储状态态,组组合电电 路用于状态译码态译码 和产产生输输出信号。状态态机的下一个状态态及输输出,不仅仅与 输输入信号有关,而且还还与寄存器当前所处处的状态态有关。 状态态机有3种表示方法:状态图态图 、状态态表和流程图图。这这3种表示方法 是等价的,相互之间间可以转换转换 。其中状态图态图 是最常用的一种表示方式。 FPGA设计与应用 5.4 5.4 存储器设计实例存储器设计实例 存储器是数字系统的重要组成部分,数据处理单元的处理结果需要存 储,许多处理单元的初始化数据也需要存放在存储器中。存储器还可以完 成一些特殊的功能,如多路复用、速率变换、数值计算、脉冲成形、特殊 序列产生以及数字频率合成等等。 基本的存储储器类类型有RAM、FIFO、ROM这这三种,由于通常的设计软设计软 件 提供相应应的宏单单元,设计设计 者可以通过过手工编编程和利用宏模块这块这 二种方式 来设计设计 各种类类型的存储储器。 FPGA设计与应用 5.5 5.5 门禁系统设计实例门禁系统设计实例 图图中所示为为一种门门禁系统统的原 理图图,其中的控制单单元实际实际 上是 一个可以控制各个组组件的状态态机 。它包括了一个12输输入键盘键盘 (数 字09、ENT、CLR),只有一个3 个数字的组组合才能打开门门。用户户 在输输入3个数字的密码码后还还要按下 ENT键键,指示输输入的完成。CLR键键 可以清除用户错误输户错误输 入的数据, 但必须须在按下ENT键键之前。正确的 密码码存储储在12位的DIP switch中 。系统统最多可以允许许3次输输入错错 误误,如果第4次输输入错误错误 ,系统统 会自动报动报 警。只有MASTERRESET 信号可以清除报报警状态态,而且该该 信号同时时也可以开门门,它和正确 输输入密码码的作用是一样样的。 FPGA设计与应用 5.6 5.6 总结与结论总结与结论 通过对经典实例的分析,可以了解硬件设计中一些基本模块如何通过 FPGA得到实现。但仅仅掌握上述模块的实现是远远不能满足电子设计需求的 ,更重要的是掌握设计方法:灵活运用FPGA设计流程开展设计,区别流程中 各个部分的联系与区别;养成良好的硬件描述语言编码风格,了解硬件描述 语言与电路的对应关系,提高设计的可维护性、可调试性;建立硬件意识, 区分FPGA设计编码与软件设计编码,软件设计编码目的是为描述逻辑流程, FPGA设计编码是描述电路结构。模块设计是FPGA设计的根本,熟练掌握模块 设计能够为进一步利用FPGA完成电子设计打好坚实的基础。 FPGA设计与应用 第第6 6章章 FPGAFPGA的配置与的配置与编编编编程程 6.1 6.1 Altera FPGAAltera FPGA配置与编程配置与编程 6.2 6.2 Xillinx FPGAXillinx FPGA配置配置 6.3 6.3 总结与结论总结与结论 FPGA设计与应用 6.1 Altera FPGA6.1 Altera FPGA配置与编程配置与编程 FPGA的配置与编程是将用户经过软件 设计与仿真验证的功能电路写入实际的 FPGA芯片中的过程。所有的FPGA芯片都需 要经过配置与编程才能实现用户需要的功 能。 FPGA上nCONFIG的低到高变化表示 配置过程的开始。配置过程包括三个 阶段:复位、配置和初始化。当 nCONFIG为低时候,器件处于复位状态 。当器件结束复位状态时,nCONFIG必 须处于逻辑高电平,使器件释放漏极 开路的nSTATUS管脚。一旦nSTATUS被 释放,它就会被上拉电阻拉到高电平 ,此时FPGA准备好开始接收配置数据 。从配置开始之前到配置结束,所有 的用户I/O管脚都处于高阻态。 FPGA设计与应用 6.2 6.2 Xillinx FPGAXillinx FPGA配置配置 Xillinx FPGA配置方式共有:JTAG或边边界扫扫描方式(JTAG or Boundary Scan Mode)、SelectMAP/Slave-Parallel方式、主动动串行方式(Master-serial Mode)、 Slave-serial方式和编编程器配置方式(Standalone Programmer Mode)。在选择选择 配 置方式之前应该应该 了解Xillinx 公司各FPGA系列具备备的配置方式,各FPGA器件系列对对 配置方式支持情况如下表所示 FPGA设计与应用 6.3 6.3 总结与结论总结与结论 FPGA器件的配置对于电子系统设计者而言较为重要的内容,但常 常被忽视。各种型号FPGA数据手册及对FPGA的配置,FPGA厂商的官方 网站有更为详细的介绍,建议读者通过本节阅读先对FPGA器件配置产 生大致的认识,再根据被配置FPGA器件的具体型号选择相关文档仔细 阅读,使本节内容及FPGA公司相关文档相互配置指导您的工程实践。 FPGA设计与应用 第第7 7章章 FPGAFPGA的配置与的配置与编编编编程程 7.1 7.1 3 3DESDES设计流程设计流程 7.2 7.2 3 3DESDES模块划分模块划分 7.5 7.5 总结与结论总结与结论 7.37.3 3 3DESDES设计过程设计过程 7.4 7.4 3 3DES-PCIDES-PCI安全卡的设计安全卡的设计 FPGA设计与应用 3DES是DES的一个更安全的变变形。DES算法运算的流程如图图所示。其中S盒是3DES (DES)算法的心脏脏,靠它实现实现 非线线性变换变换 。 7.1 7.1 3 3DESDES设计流程设计流程 3DES算法可以描述如下:设ek(x)和 dk(x)分别表示用DES算法对64位的位串加 密和解密,密钥为K;64位的密文c是通过 执行下面的运算得到的: 其中K1、K2、K3是56位的DES密钥。 从密文c导出明文x的3DES的解密过程是加 密过程的反过程,其描述如下: FPGA设计与应用 7.2 7.2 3 3DESDES模块划分模块划分 为了获得更高的安全性,三个密钥应该是互不相同的。这样,本质 上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强 力攻击时是比较安全的。对安全性需要不那么高的数据,K1可以等于 K3。在这种情况下,密钥的有效长度为112位。 在通常使用的所有64位的分组密钥中,3DES是最安全的;但是, 如果用软件来实现,它也是这些分组密钥中最慢的。通过硬件设计, 3DES的性能胜过大多数其它用软件实现的分组密钥 FPGA设计与应用 7.3 7.3 3DES3DES设计过程设计过程 DES算法高速运算电路模型设计 流水电路构架 控制电路 密钥生成模块 DES算法运算电路 SBOX的设计与实现 3DES(DES)算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加 /解密过程和密钥生成过程中仅有逻辑运算和查表运算。这些特点为采用FPGA进行高 速设计提供了契机。由于3DES算法本质上就是三次DES算法的运算,所以只要了解 DES算法的设计过程,也就了解了3DES算法的设计过程。因此,下面就介绍一下DES 算法的设计过程 FPGA设计与应用 7.3 7.3 3 3DESDES设计过程设计过程 DES算法高速运算电路模型设计 流 水 电 路 构 架 由于DES算法中每个分组需经过16轮运算,如果采用顺序电路构架则每过 16轮运算才能得到一个加密分组,大大降低了加密效率。因此如图所示,高速 DES运算电路采用流水结构,16步迭代设计16个运算模块,分别称作LUN1、 LUN2、LUN16,数据在各模块间流水运算。当系统对第i个输入的数据元素 进行第j段运算的同时,还可以对第i+1个数据进行第j-1段的运算,对第i+2个 输入的数据元素进行第j-2段的运算,以此提高系统的运算效率。 随着的增加,分组的平均流水线操作时间 大大减少,加密效率大大提高 FPGA设计与应用 7.3 7.3 3DES3DES设计过程设计过程 DES算法高速运算电路模型设计 控 制 电 路 如图所示,控制电路是整个系统的控制中心,可以采用移位寄存器或计 数器加译码电 路构成,为减少信号毛刺,提高电路运算的稳定性与工作速度 。这里选用一个17bits的串入并出移位寄存器,其中16bits用于生成算法的每 轮运算的使能信号,另外1bit用于生成指示加密输出的ready信号 FPGA设计与应用 7.3 7.3 3DES3DES设计过程设计过程 DES算法高速运算电路模型设计 密 钥 生 成 模 块 如图所示,与流水构架DES运算电路的工作时序相对应 ,其16步迭代运算所需子密 钥必须同时生成。密钥生成模块由选择 控制电路PC-1、选择输 出、压缩 置换电 路PC- 2构成。该部分的输入是64bits初始密钥,输出为每次迭代运算用的子密钥,使能控制 信号、模式控制信号。 64bits初始密钥经过 置换选择 PC-1去除校验位并被分离成左右两部分,各28bits, 在模式控制信号(加密或脱密)及内部状态机信号控制下,根据移位表,选择输 出, 经压缩 置换PC-2同时形成各步迭代所需运算子密钥 FPGA设计与应用 7.3 7.3 3DES3DES设计过程设计过程 DES算法高速运算电路模型设计 DES 算法 运算 电路 如图所示为DES算法运算模块的电路构架,虚线框内所示为单轮 运算。电路由初始 置换电 路IP、4个32位的寄存器,扩展置换E处理电路、S盒数据代替电路、P盒置换电 路 及末置换IP-1电路构成 FPGA设计与应用 7.3 7.3 3DES3DES设计过程设计过程 DES算法高速运算电路模型设计 SBOX 的设计 与实现 S盒是DES算法的关键步骤,所有其它的运算都是线性的,而S盒是一个复杂 的非线性函数,正是经过 S盒的非线性变换 才使明文得到了很好的混乱,从而具 有较强的安全性。在硬件实现时 ,S盒实现 具有一定难度,其设计实现 的好坏 是影响算法整体加脱密速度的主要因素。在算法设计过 程中,从资源的角度出发 ,应尽可能的减少FPGA器件中逻辑单 元、嵌入式阵列块及嵌入式单元的耗用, 但这可能以降低系统速度为代价。从速度的角度出发,应最大限度地提高系统 处理速度,但这样 往往需要较多资源。因此,在大多数情况下这两种选择 是矛 盾的。 使用verilog语言建立S盒电路模型,有两种方法可供选择 :一种方法是使用 verilog语言中的多重选择语 句CASE,直接进行电路的行为描述;另一种方法是 采用开发工具中提供的库函数,使用器件内部的EAB实现 。在建立S盒的电路模型 时,必须充分考虑选 用器件的内部结构,采用恰当的形式进行表达,做到既能 节省器件资源又能提高算法运算效率,本例中选用前一种方式。 FPGA设计与应用 7.4 7.4 3 3DES-PCIDES-PCI安全卡的设计安全卡的设计 3DES卡结构设计 6种PCI安全卡典型结构性能分析和比较 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 3DES卡结构设计 安全卡的硬件系统结 构设计 在解决高速数据传输问题 中起着极为重要的作 用,同时在减小设计难 度和提高可靠性方面也有很大作用。3DES算法的FPGA硬件 化是实现 高速安全处理的必要条件。但是,若硬件结构设计 不合理,即使3DES 算法芯片速度再高也不能实现 高速加密系统。缺乏针对 高速硬件系统结 构分析 和研究将会产生性能不高的问题 出现。因此,要想实现 3DES卡的高性能,减小 设计难 度和提高可靠性就必须对 硬件系统结 构进行深入的分析和设计 。 一般PCI总线 安全卡由嵌入式CPU为核心的管理子系统、PCI桥、安全专用芯 片、控制ASIC芯片、安防措施、数据缓冲存储电 路、网络接口、USB、RS232口等 组成。但是,影响实时 安全处理速度的关键因素主要是嵌入式CPU、PCI桥、安 全专用芯片、数据缓冲存储电 路这四部分的性能和它们之间的组合关系。因此 ,我们就以这四部分之间的组合关系为结 构归类对 象,对高速PCI安全卡硬件系 统结 构进行分析和归类 ,归纳为 种典型结构。 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 6种PCI安全卡典型结构性能分析和比较 如图所示典型结构1的主要组成部件是:嵌入式CPU基本系统、PCI桥、安全专用芯片、双 端口SRAM。 数据主要路径是:放在计算机内存的数据经PCI总线 写入双端口SRAM中,卡上CPU把数据读 出并交给安全专用芯片处理,然后卡上CPU再把处理后的数据写入双端口SRAM中,再经PCI总 线提交给计 算机系统处 理。对于协议 信息和安全管理信息,卡上CPU不把此类数据送给安全芯 片,而是直接处理并给计 算机系统返回相关信息。 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 6种PCI安全卡典型结构性能分析和比较 数据主要路径是:放在微机系统内存的数据经PCI总线 写入双端口SRAM中,卡上CPU只读出 协议 信息和管理信息,直接处理并给微机系统返回相关信息。而安全芯片也作为能独立执行 的智能控制器从双端口SRAM中读出数据并进行处理,然后把处理后的数据重新写入双端口SRAM 中,再经PCI总线 提交给微机系统处 理。 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 6种PCI安全卡典型结构性能分析和比较 数据主要路径是:放在微机系统内存的数据经PCI总线 写入输入FIFO中,卡上CPU把数据读 出并交给安全芯片处理,然后卡上CPU再把处理后的数据写入输出FIFO中,再经PCI总线 提交 给微机系统处 理。对于协议 信息和安全管理信息,卡上CPU不把此类数据送给安全芯片,而是 直接处理并给微机系统返回相关信息。 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 6种PCI安全卡典型结构性能分析和比较 数据主要路径是:放在微机系统内存的数据经PCI总线 写入输入FIFO中,卡上CPU只读出 协议 信息和安全管理信息,直接处理并通过输 出FIFO给微机系统返回相关信息。而安全专用 芯片也作为能独立执行的智能控制器从输入FIFO中读出数据并进行处理,然后把处理后的数 据重新写入输出FIFO中,再经PCI总线 提交给微机系统处 理。 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 6种PCI安全卡典型结构性能分析和比较 接收数据主要路径是:发方来的数据从网络接口放在网络输入数据缓冲(FIFO)中,卡上CPU读出数据 并进行识别,对安全协议信息和安全管理信息,直接处理;对报文信息,卡上CPU把它们交给安全专用芯 片进行处理,然后CPU再把处理后的数据写入输出FIFO中,再经PCI总线提交 给微机系统处理。 发送数据主要路径是:本地微机把要处理的数据经PCI总线写入输入FIFO中,卡上CPU把数据读出并交 给安全专用芯片进行处理,然后CPU再把处理后的数据写入网络输出数据缓冲中,经网络发到目的端;对 于协议信息和安全管理信息,卡上CPU不把此类数据送给安全芯片,而是直接处理并给本地微机返回相关信 息,或者通过卡上的网络接口发到目的端。 FPGA设计与应用 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计 6种PCI安全卡典型结构性能分析和比较 接收数据主要路径是:发方来的数据从网络接口放在网络输入数据缓冲(FIFO)中,卡上CPU只读出报 头数据并进行识别,对安全协议信息和安全管理信息,直接处理;对安全报文信息,CPU通知安全专用芯 片读出并进行处理,然后安全专用芯片直接把处理后的明文数据写入输出FIFO中,再经PCI总线提交给微机 系统处理。 发送数据主要路径是:本地微机把要处理的明文数据经PCI总线写入输入FIFO中,卡上CPU只读出报头数据 并进行识别,对明文报文信息,由安全专用芯片读出并进行处理,然后安全专用芯片直接把处理后的数据 写入网络输出数据缓冲中,卡上CPU把有关报头信息加在数据前面,经网络发到目的端;对于协议信息和 安全管理信息,卡上CPU直接处理并给本地微机返回相关信息,或者通过卡上的网络接口发到目的端。 FPGA设计与应用 7.7. 总结与结论总结与结论 数字逻辑逻辑 的门类门类 千变变万化,但就其本质质而言,只有组组合逻辑逻辑 和时时序逻辑逻辑 两大 类类。它们们在复杂杂数字系统统的设计设计 中,各自承担着自己的责责任。一般情况下组组合逻逻 辑辑可以用来完成简单简单 的逻辑逻辑 功能,如多路器、与或非逻辑逻辑 运算、加法和乘法等算术术 运算。而时时序逻辑则逻辑则 可以用来产产生与运算过过程有关的(按时间节时间节 拍)多个控制信 号序列包括存储储运算的结结果和取出存储储器中的数据。在用可综综合的硬件描述语语言设设 计计的复杂杂运算逻辑逻辑 系统统中,往往用同步状态态机来产产生与时钟节时钟节 拍密切相关(同步 )的多个控制信号序列,用它来控制多路器或数据通道的开启/关闭闭,来使有限的组组 合逻辑逻辑 运算器资资源得到充分的运行,并寄存有意义义的运算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全国计算机技术与软件专业技术资格(水平)考试系统集成高级顾问师试卷
- 齐鲁医药学院《生物显微镜技术》2024-2025学年第一学期期末试卷
- 金华职业技术学院《Python程序设计课程设计》2024-2025学年第一学期期末试卷
- 2025年电子商务师职业资格认证考试模拟题集及参考答案分析
- 泰山护理职业学院《机械设计》2024-2025学年第一学期期末试卷
- 2025年建筑行业职称考试模拟试题及答案解析
- 南昌健康职业技术学院《专项技能1》2024-2025学年第一学期期末试卷
- 2025年酒店管理招聘笔试模拟试题及参考答案
- 2025年物资调配与运输实战技能题库
- 2025年项目经理中级专业考试模拟题集及答案解析
- 山东省济宁市第十五中学2023-2024学年(五四学制)六年级上学期第一次月考语文试题
- 北京马拉松赛事运作及战略定位研究
- 高中思想政治-人教版新教材必修1第四课第一框:中国特色社会主义进入新时代教学设计学情分析教材分析课后反思
- DB6105T 180-2022 大豆种子田间检验技术规程
- 惠州卫生职业技术学院辅导员考试题库
- 试用期转正审批表及考核表实用文档
- 2023年爱粮节粮知识竞赛试题
- 印尼劳动法中文版
- 内科大查房课件综合医院抑郁诊疗-包头
- 中式烹调师高级技师试题与答案
- GB/T 9573-2013橡胶和塑料软管及软管组合件软管尺寸和软管组合件长度测量方法
评论
0/150
提交评论