




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