
FPGA设计与应用教学.ppt
73页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 1.5 1.5 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用1.1 1.1 FPGAFPGA的发展历程的发展历程的发展历程的发展历程 可编程逻辑器件可编程逻辑器件可编程逻辑器件可编程逻辑器件( ( ( (PLD)PLD)PLD)PLD) 可可可可编编程程程程逻辑阵逻辑阵列列列列 ( ( ( (PLA)PLA)PLA)PLA) 可可可可编编程程程程阵阵列列列列逻辑逻辑 ( ( ( (PAL)PAL)PAL)PAL) Xilinx Xilinx Xilinx Xilinx的的的的FPGAFPGAFPGAFPGAAlteraAlteraAlteraAltera的的的的CPLDCPLDCPLDCPLD早期FPGAFPGA设计与应用设计与应用1.2 1.2 FPGAFPGA的基本原理的基本原理的基本原理的基本原理 ◆◆基于查找表的基于查找表的FPGA的基本结构及逻辑实现原理的基本结构及逻辑实现原理 ◆◆FPGA的配置应用的配置应用 ◆◆基于乘积项的基于乘积项的FPGA的基本结构及逻辑实现原理的基本结构及逻辑实现原理 FPGA设计与应用设计与应用1.2 1.2 FPGAFPGA的基本原理的基本原理的基本原理的基本原理 ◆◆基于查找表的基于查找表的FPGA的基本结构及逻辑实现原理的基本结构及逻辑实现原理 查找表(查找表(Look Up TableLook Up Table,,LUTLUT))本质上就是一个本质上就是一个RAMRAM。
目前目前FPGAFPGA中多中多使用使用4 4输入的输入的LUTLUT,,所以每一个所以每一个LUTLUT可以看成一个有可以看成一个有4 4位地址线的位地址线的16╳116╳1的的RAMRAM当用户通过原理图或当用户通过原理图或HDLHDL语言描述了一个逻辑电路以后,语言描述了一个逻辑电路以后,FPGAFPGA开发开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAMRAM这这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可地址对应的内容,然后输出即可 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设计与应用设计与应用 FPGAFPGA是近几年集成是近几年集成电路中路中发展最快的展最快的产品。
本章主要品本章主要对FPGAFPGA的的发展展历程、程、结构原理和构原理和设计方法与流程做了介方法与流程做了介绍随着可编程程逻辑器件的高速器件的高速发展,可展,可编程程逻辑器件将器件将进一步一步扩大其大其领地据IC InsightsIC Insights的数据的数据显示,可示,可编程程逻辑器件市器件市场从从19991999年的年的2929亿美元增美元增长到到20042004的的5656亿美元,几乎翻了一番可美元,几乎翻了一番可编程程逻辑器件将器件将继续向着更高密度和更大容量方向向着更高密度和更大容量方向迈进1.5 1.5 1.5 1.5 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用第第2 2章章 硬件描述语言入门硬件描述语言入门 2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 2 2.3 .3 总结与结论总结与结论总结与结论总结与结论 2 2.2 .2 Verilog HDLVerilog HDLVerilog HDLVerilog HDL入门入门入门入门 FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 ◆◆VHDL的模块组织的模块组织 ◆◆基本的数据类型及常量、变量、信号基本的数据类型及常量、变量、信号 ◆◆运算符及表达式运算符及表达式 ◆◆VHDL基本语句基本语句 ◆◆典型电路的设计典型电路的设计 FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 ◆◆VHDL的模块组织的模块组织 在在应用用VHDLVHDL描述数字系描述数字系统结构构时,我,我们使用使用实体(体(entityentity))- -结构体构体( ( architecture )architecture )结构。
构 实体描述了数字系体描述了数字系统的的输入入输出接口,同出接口,同时还定定义了一些全局常量了一些全局常量以及与其他以及与其他电路(程序模路(程序模块或或逻辑图模模块)之)之间必要必要连接的拓扑接的拓扑结构但在但在实体中,我体中,我们并不并不对电路的路的逻辑做任何描述,可将其看成是一个所做任何描述,可将其看成是一个所谓的的逻辑“黑盒子黑盒子”很明显,,VHDLVHDL遵循遵循EDAEDA解决方案中自解决方案中自顶向下的向下的设计原原则,并能,并能够保持良好的接口兼容性保持良好的接口兼容性 FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 ◆◆基本的数据类型及常量、变量、信号基本的数据类型及常量、变量、信号 数据类型 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 VHDLVHDLVHDLVHDL入门入门入门入门 ◆◆运算符及表达式运算符及表达式 ◆◆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 HDLVerilog HDLVerilog HDL入门入门入门入门 FPGA设计与应用设计与应用2 2.3 .3 总结与结论总结与结论总结与结论总结与结论 这一章我们主要学习了一些这一章我们主要学习了一些HDLHDL语言的基本语法与我们以往学习的语言的基本语法与我们以往学习的C C语言语言等、等、PASCALPASCAL等都有相似之处,要注意的是在学习中要有意识地把等都有相似之处,要注意的是在学习中要有意识地把HDLHDL语言的语言的语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握。
语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握 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 2选选1 1多路选择器多路选择器 ◆◆两位比较器两位比较器 FPGA设计与应用设计与应用3 3. .2 2 基本时序器件基本时序器件基本时序器件基本时序器件————寄存器寄存器寄存器寄存器 ◆◆D D触发器触发器 ◆◆T T触发器触发器 ◆◆J-KJ-K触发器触发器 ◆◆ 时序器件时序器件——移位寄存器移位寄存器 FPGA设计与应用设计与应用3 3. .3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 ◆◆ 4 4位加法器位加法器 逐位进位加法器逐位进位加法器 超前进位加法器超前进位加法器进位选择加法器进位选择加法器 输入数据同比特位进行运算时,都要等待前一比特的进位信号状态完成(建议:用在位数不超过16位的加法器)。
对于多位逐位进位加法器来说,也可采用流水方式改善性能 输入数据同比特位进行运算时,不需要等待前一比特的进位信号实现速度比较快,但资源占用也比较大建议使用在16位加法器上比较合适对于位数较多的也可采用流水方式 由三个加法器组成,一个计算低字节;两个计算高字节计算高字节的加法器一个令进位为1,另一个令进位为0三部分同时计算,最后,低字节的进位选择是哪一个高字节器的输出对于位数较多的加法器,性能的提高比较明显,但资源相对占用较多 FPGA设计与应用设计与应用3 3. .3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 ◆◆ 4 4位计数器位计数器 逐位逐位进位位计数器数器 格雷格雷码逐位逐位计数器数器 流水式超前进位计数器流水式超前进位计数器 逐位进位计数器的特点是:每一位都要等前一位的进位输出有效后才开始变化,每一位模块之间用进位信号连接起来(推荐使用长度不超过16位) 应用逐位进位计数器的原理,并在其基础上加以改进,因为采用格雷码进行计数,每个状态变化时,只有1位信号发生改变,减少了毛刺现象的发生 应用超前进位计数器的基本原理加以改进,使用流水技术,减少了进位信号的传输延时,大大提高了系统效率。
FPGA设计与应用设计与应用3 3. .3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 ◆◆ 4 4位乘法器位乘法器 组合合逻辑实现的乘法器的乘法器 移位相加乘法器移位相加乘法器 查找表乘法器找表乘法器 移位相加乘法器实现简单,它的基本设计思想就是采用一种称之为迭代的方式,根据乘数的每一位是否为1进行计算,若为1则将被乘数移位相加,这种实现方式使得在乘法计算中,每算出一乘积项就加到乘积中,此时的积称作部分积通过对部分积的逐步移位完成乘积项与乘数的位对齐相加,直至得出结果这种方法硬件资源耗用较少,但一个4位乘法需要4个周期才能得到结果,速度比较慢,也可采用这种思想,用全逻辑实现,但延时较大因此,在高速的应用系统中,一般不采用该方法 查找表乘法器的基本设计思路就是将乘积直接存放在存储器中,将操作数(乘数和被乘数)作为地址访问存储器,得到的输出数据就是乘法运算的结果 加法器加法器树乘法器乘法器 加法器树结合了移位相加乘法器和查找表乘法器的优点事实上,从下面的示意图可看出,它采用了并行处理的架构,所以其速度快,由于主要采用与门逻辑实现逻辑功能,所以其资源耗费也较少。
FPGA设计与应用设计与应用3 3. .4 4 总结与结论总结与结论总结与结论总结与结论 数字系统往往由数据通路和控制通路组成,本章主要数字系统往往由数据通路和控制通路组成,本章主要从从RTLRTL级对组成数字系统的基本模块进行讲解,可以说掌级对组成数字系统的基本模块进行讲解,可以说掌握了这部分内容,就可以完成一些简单的数字系统的设握了这部分内容,就可以完成一些简单的数字系统的设计了 FPGA设计与应用设计与应用第第4 4章章 FPGAFPGA的同步的同步设计4.1 4.1 4.1 4.1 同步的定义同步的定义同步的定义同步的定义 4.4 4.4 4.4 4.4 中央允许产生器中央允许产生器中央允许产生器中央允许产生器 4.2 4.2 4.2 4.2 同步部件同步部件同步部件同步部件 4.3 4.3 4.3 4.3 状态产生状态产生状态产生状态产生 4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口 4.5 4.5 4.5 4.5 同步清除同步清除同步清除同步清除 4.6 4.6 4.6 4.6 时钟歪斜的清除时钟歪斜的清除时钟歪斜的清除时钟歪斜的清除 4.8 4.8 4.8 4.8 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用4 4. .1 1 同步的定义同步的定义同步的定义同步的定义 对于静态同步设计,对于静态同步设计, 我们称一个系统是同步的,假若:我们称一个系统是同步的,假若: 1.1.每每个个边边缘缘敏敏感感部部件件的的时时钟钟输输入入是是一一次次时时钟钟输输入入的的某某个个函函数数;;并并且且仍仍是是象象一次时钟那样的时钟信号。
一次时钟那样的时钟信号 2 2. .所有存所有存储元件(包括元件(包括计数器)都是数器)都是边缘敏感的,在系敏感的,在系统中没有中没有电平敏感平敏感存存储元件 FPGA设计与应用设计与应用4.2 4.2 4.2 4.2 同步部件同步部件同步部件同步部件 ◆◆基本的同步部件基本的同步部件 ◆◆同步清除同步清除D D型触发器型触发器 构成同步基本部件基础的是边缘敏感D型触发器其基本性质为,在时钟CLK输入的上升边之后,D输入端的逻辑值出现在Q输出端,而其补值出现在Q非输出端这一过程就是取样过程 我们希望FPGA有一个性能,即全局复位,这是一个测试要求在FPGA的同步设计中应避免使用异步清除D型触发器(它破坏了同步系统的两个条件),应代之以同步清除这样就产生了第一个新的基本部件:带同步清除的D型触发器 FPGA设计与应用设计与应用4.2 4.2 4.2 4.2 同步部件同步部件同步部件同步部件 ◆◆ T T型触发器型触发器 ◆◆ E E型触发器型触发器 最有用的存储单元之一是一种锁存器,它能够保持一个数据直到通知它锁存另一数据时为止,称为E型触发器它有一个从其输出端到其输入端的反馈环路,使其能保持数据长达若干个时钟周期。
FPGA设计与应用设计与应用4.2 4.2 4.2 4.2 同步部件同步部件同步部件同步部件 ◆◆ R R型触发器型触发器 ◆◆ 同步同步RSRS触发器触发器 请求(R型)触发器是唯一具有一个异步电平敏感输入的,后者用于应答信号同步清除用于全局复位,如在测试中用,它有两种结构 同步RS触发器有两个清除端,一个本地清除R和一个全局清除GC当复位端R和置位端S都为高电平时,没有不确定状态在同步RS触发器复位优先于置位 FPGA设计与应用设计与应用4.3 4.3 4.3 4.3 状态产生状态产生状态产生状态产生 ◆◆ 状态的无条件执行状态的无条件执行 在所有标准部件中最重要的是同步二进制计数器(在所有标准部件中最重要的是同步二进制计数器(SBCSBC)), , SBCSBC有许多用途,其中一种有许多用途,其中一种即状态产生即状态产生. . 通常用单状态译码器完成状态的无条件执行,此译码器连接在主计数器上下图所示为实现这一原理的连续平均电路它顺序取16项数据,并输出其和每16项数据之和锁存于输出寄存器,并将累加器清除 FPGA设计与应用设计与应用4.3 4.3 4.3 4.3 状态产生状态产生状态产生状态产生 ◆◆ 状态的有条件执行状态的有条件执行 在所有标准部件中最重要的是同步二进制计数器(在所有标准部件中最重要的是同步二进制计数器(SBCSBC)), , SBCSBC有许多用途,其中一种有许多用途,其中一种即状态产生即状态产生. . 在根据无条件执行状态序列原则设计的电路中,转移仅限于用以实现非二进制的无条件转移类型是。
其它各种电路要求用有条件转移或有条件执行一状态序列 FPGA设计与应用设计与应用4.4 4.4 4.4 4.4 中央允许产生器中央允许产生器中央允许产生器中央允许产生器 用不良设计方法设计的中央时钟产生器,可以用等效的同步式电路取代后者即中央允许产生器这一设计中采用了本章介绍的所有设计方法图4-27中示出的简单允许产生器能够推广到和任何有条件或无条件状态的执行相结合 FPGA设计与应用设计与应用4.5 4.5 4.5 4.5 同步清除同步清除同步清除同步清除 虽然本章中作为单元电路介绍的同步清除在功能上,在某些情况下,等效于异步 虽然本章中作为单元电路介绍的同步清除在功能上,在某些情况下,等效于异步清除,但是当一电路有全局复位功能时优先选用同步清除的理由如下:清除,但是当一电路有全局复位功能时优先选用同步清除的理由如下: 1 1、某些电路具有自己的同步清除功能可以将其用于全局清除,以节省资源某些电路具有自己的同步清除功能可以将其用于全局清除,以节省资源 2 2、混合使用全局异步清除和局部同步清除会使电路功能混乱,导致产生异常情况混合使用全局异步清除和局部同步清除会使电路功能混乱,导致产生异常情况。
3 3、在许多情况下,采用同步清除的电路比异步的占用较少空间在许多情况下,采用同步清除的电路比异步的占用较少空间 4 4、使、使RAMRAM和寄存器列一类电路元件,初始化时,要求在连续几个时钟周期中清除,和寄存器列一类电路元件,初始化时,要求在连续几个时钟周期中清除,这意味着同步清除这意味着同步清除 FPGA设计与应用设计与应用4.6 4.6 4.6 4.6 时钟歪斜的清除时钟歪斜的清除时钟歪斜的清除时钟歪斜的清除 同同步步设设计计的的最最重重要要求求之之一一是是将将时时钟钟歪歪斜斜减减小小到到可可以以接接受受的的程程度度假假设设时时钟钟缓缓冲冲符合第三章中的规则,则还有另外两种设计方法可以采用符合第三章中的规则,则还有另外两种设计方法可以采用 第第一一种种情情况况是是从从一一D D型型触触发发器器的的Q Q输输出出端端直直接接馈馈给给另另一一触触发发器器的的 D D输输入入端端时时,,延延迟迟不不足足以以满满足足第第二二个个D D型型触触发发器器对对保保持持时时间间的的要要求求解解决决方方法法是是使使用用一一个个低低驱驱动动强强度度的源的源D D型触发器,并且不加缓冲。
高的相对扇出有助于改进保持时间型触发器,并且不加缓冲高的相对扇出有助于改进保持时间 第二种 第二种设计方法是在各个受方法是在各个受时钟控制的部件之后分控制的部件之后分别接入接入缓冲器,并在两个冲器,并在两个缓冲冲输出端之出端之间接一平衡网接一平衡网络若两支路由于某种原因不平衡,若两支路由于某种原因不平衡,则有一小有一小电流通流通过网网络,,从而消除从而消除时钟歪斜 FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 互相同步的系统互相同步的系统 ◆◆ 互相异步的系统互相异步的系统 ◆◆ 握手发送数据的安全性握手发送数据的安全性 ◆◆ 同步系统的异步输入同步系统的异步输入 ◆◆ 亚稳定性亚稳定性 ◆◆ 微处理器存储器映射中的微处理器存储器映射中的FPGA FPGA FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 互相同步的系统互相同步的系统 我们要讨论的第一种接口是普通的互相同步的两个同步系统的接口为了满足这一类的条件,两系统必须有一公共外部时钟用允许标志如图所示,通知在两系统之间传送数据。
允许信号在时钟上升沿后经过时钟至Q端的传播时间变为有效,并保持有效至下一个时钟上升沿之后时钟至Q端的时间故它包含一有效时钟边缘 FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 互相异步的系统互相异步的系统 更为常见的一类异步接口是互相异步的两个内部同步的系统之间的接口这时,重要的是,按照同步设计原理,处理请求的信号交换(握手)功能需要采用R型触发器,其应用示于图中 FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 同步系统的异步输入同步系统的异步输入 本节讨论一同步系统处理独立的异步输入的方法若FPGA只要求对单个异步到达的事件起响应,则存储立即式请求触发器,如图所示的电路,比同步R型触发器更简单它由一D型触发器构成,其D输入端接到逻辑“1”上,异步输入连接到其时钟端D型触发器用于此目的比异步RS触发器更适合,因为自边缘敏感D型触发器来的请求,在收到之后几乎立刻就被接收系统用上节所述方法消除另一方面,电平敏感异步RS触发器则要求输入端上的激励(它可能是逻辑电平的阶跃变化)去掉才行。
FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 握手发送数据的安全性握手发送数据的安全性 一般说来,围绕握手过程的保护措施愈多,数据完整性愈大,但是系统性能愈低当通过一异步接口发送数据时,数据错误概率可以小到忽略不计,但是要以系统带宽作为代价 FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 微处理器存储器映射中的微处理器存储器映射中的FPGA FPGA 使FPGA和一微处理器通信的简单方法是把它放在微处理器的存储器映射中微处理器,利用片选和写允许(WE)控制线,记入数据或查询数据位置,就好像FPGA是RAMWE的上升沿使数据存储在FPGA输入端的电平敏感锁存器中,同时使一异步式请求触发器置位 FPGA设计与应用设计与应用4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口◆◆ 亚稳定性亚稳定性 用于对输入数据流取样的边缘敏感触发器,只要在有效时钟边缘的两边的临界建立和保护时间中保持稳定则将正确地锁存数据若在此期间输入数据改变,则输出将不能预测,产生所谓亚稳定现象。
触发器在回到一逻辑状态之前可能进入高电平和低电平之间的几种亚稳定序列之一,如图所示 FPGA设计与应用设计与应用4.8 4.8 4.8 4.8 总结与结论总结与结论总结与结论总结与结论 当数字系统的复杂度进一步提高,数据流的速度要求进一步提升时,当数字系统的复杂度进一步提高,数据流的速度要求进一步提升时,ICIC设计设计者就要很谨慎的考虑数字系统的时序问题,在对数字系统的定时关系进行准确的者就要很谨慎的考虑数字系统的时序问题,在对数字系统的定时关系进行准确的分析的基础上掌握好同步技术是高水平的分析的基础上掌握好同步技术是高水平的ICIC设计者所必需的,也值得每个设计者所必需的,也值得每个FPGAFPGA设设计者研读计者研读 FPGA设计与应用设计与应用第第5 5章章 常常见的的FPGAFPGA设计实例例 5.1 5.1 5.1 5.1 移位寄存器设计实例移位寄存器设计实例移位寄存器设计实例移位寄存器设计实例 5.4 5.4 5.4 5.4 存储器设计实例存储器设计实例存储器设计实例存储器设计实例5.2 5.2 5.2 5.2 计数器设计实例计数器设计实例计数器设计实例计数器设计实例5.3 5.3 5.3 5.3 状态机设计实例状态机设计实例状态机设计实例状态机设计实例5.5 5.5 5.5 5.5 门禁系统设计实例门禁系统设计实例门禁系统设计实例门禁系统设计实例5.6 5.6 5.6 5.6 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用5.1 5.1 5.1 5.1 移位寄存器设计实例移位寄存器设计实例移位寄存器设计实例移位寄存器设计实例 ◆◆ m m序列的产生和性质序列的产生和性质 ◆◆ 对具体某一信号的连续存储对具体某一信号的连续存储 m序列是最常用的一种伪随机序列,它是最长线性反馈移位寄存器序列的简称,是由带线性反馈的移位寄存器产生的序列,并且具有最长周期。
在实际设计中,如密码门、ATM提款机一类需要手动输入信息的地方,需要将某一具体信号进行连续存储,常会使用到这种移位寄存器 FPGA设计与应用设计与应用5.2 5.2 5.2 5.2 计数器设计实例计数器设计实例计数器设计实例计数器设计实例 几种几种实际应用的用的计数器数器电路 ((1 1)) 跟踪并跟踪并计算某一信号出算某一信号出现的次数的次数 ((2 2)) 作控制信号的条件作控制信号的条件 有时某些控制信号是根据计数器的某种状态的出现而发生改变, 有时某些控制信号是根据计数器的某种状态的出现而发生改变,计数器负责跟踪另外一个信号,例如移位寄存器在先动作一拍的前计数器负责跟踪另外一个信号,例如移位寄存器在先动作一拍的前提下才进行下一步的操作,或在动作几拍,或在另一个信号出现几提下才进行下一步的操作,或在动作几拍,或在另一个信号出现几次的情况下改变以前的动作状态等情况计数器在这种情况下起到次的情况下改变以前的动作状态等情况计数器在这种情况下起到了过渡性作用了过渡性作用 FPGA设计与应用设计与应用5.3 5.3 5.3 5.3 状态机设计实例状态机设计实例状态机设计实例状态机设计实例 状状态机可以机可以认为是是组合合逻辑和寄存器和寄存器逻辑的特殊的特殊组合,它一般包括两合,它一般包括两个部分:个部分:组合合逻辑部分和寄存器部分。
寄存器用于存部分和寄存器部分寄存器用于存储状状态,,组合合电路用路用于状于状态译码和和产生生输出信号状出信号状态机的下一个状机的下一个状态及及输出,不出,不仅与与输入信入信号有关,而且号有关,而且还与寄存器当前所与寄存器当前所处的状的状态有关 状状态机有机有3 3种表示方法:状种表示方法:状态图、状、状态表和流程表和流程图这3 3种表示方法是种表示方法是等价的,相互之等价的,相互之间可以可以转换其中状态图是最常用的一种表示方式是最常用的一种表示方式 FPGA设计与应用设计与应用5.4 5.4 5.4 5.4 存储器设计实例存储器设计实例存储器设计实例存储器设计实例 存存储储器器是是数数字字系系统统的的重重要要组组成成部部分分,,数数据据处处理理单单元元的的处处理理结结果果需需要要存存储储,,许许多多处处理理单单元元的的初初始始化化数数据据也也需需要要存存放放在在存存储储器器中中存存储储器器还还可可以以完完成成一一些些特特殊殊的的功功能能,,如如多多路路复复用用、、速速率率变变换换、、数数值值计计算算、、脉脉冲冲成成形形、、特特殊殊序列产生以及数字频率合成等等。
序列产生以及数字频率合成等等 基本的存基本的存储器器类型有型有RAMRAM、、FIFOFIFO、、ROMROM这三种,由于通常的三种,由于通常的设计软件提件提供相供相应的宏的宏单元,元,设计者可以通者可以通过手工手工编程和利用宏模程和利用宏模块这二种方式来二种方式来设计各种各种类型的存型的存储器 FPGA设计与应用设计与应用5.5 5.5 5.5 5.5 门禁系统设计实例门禁系统设计实例门禁系统设计实例门禁系统设计实例 图中中所所示示为一一种种门禁禁系系统的的原原理理图,,其其中中的的控控制制单元元实际上上是是一一个个可可以以控控制制各各个个组件件的的状状态机机它它包包括括了了一一个个1212输入入键盘((数数字字0 0--9 9、、ENTENT、、CLRCLR)),,只只有有一一个个3 3个个数数字字的的组合合才才能能打打开开门用用户在在输入入3 3个个数数字字的的密密码后后还要要按按下下ENTENT键,,指指示示输入入的的完完成成CLRCLR键可可以以清清除除用用户错误输入入的的数数据据,,但但必必须在在按按下下ENTENT键之之前前正正确确的的密密码存存储在在1212位位的的DIPDIP switchswitch中中。
系系统最最多多可可以以允允许3 3次次输入入错误,,如如果果第第4 4次次输入入错误,,系系统会会自自动报警警只只有有MASTERMASTER__RESETRESET信信号号可可以以清清除除报警警状状态,,而而且且该信信号号同同时也也可可以以开开门,,它它和和正正确确输入入密密码的作用是一的作用是一样的 FPGA设计与应用设计与应用5.6 5.6 5.6 5.6 总结与结论总结与结论总结与结论总结与结论 通通过过对对经经典典实实例例的的分分析析,,可可以以了了解解硬硬件件设设计计中中一一些些基基本本模模块块如如何何通通过过FPGAFPGA得得到到实实现现但但仅仅仅仅掌掌握握上上述述模模块块的的实实现现是是远远远远不不能能满满足足电电子子设设计计需需求求的的,,更更重重要要的的是是掌掌握握设设计计方方法法::灵灵活活运运用用FPGAFPGA设设计计流流程程开开展展设设计计,,区区别别流流程程中中各各个个部部分分的的联联系系与与区区别别;;养养成成良良好好的的硬硬件件描描述述语语言言编编码码风风格格,,了了解解硬硬件件描描述述语语言言与与电电路路的的对对应应关关系系,,提提高高设设计计的的可可维维护护性性、、可可调调试试性性;;建建立立硬硬件件意意识识,,区区分分FPGAFPGA设设计计编编码码与与软软件件设设计计编编码码,,软软件件设设计计编编码码目目的的是是为为描描述述逻逻辑辑流流程程,,FPGAFPGA设设计计编编码码是是描描述述电电路路结结构构。
模模块块设设计计是是FPGAFPGA设设计计的的根根本本,,熟熟练练掌掌握握模模块块设计能够为进一步利用设计能够为进一步利用FPGAFPGA完成电子设计打好坚实的基础完成电子设计打好坚实的基础 FPGA设计与应用设计与应用第第6 6章章 FPGAFPGA的配置与的配置与编程程 6.1 6.1 6.1 6.1 Altera FPGAAltera FPGAAltera FPGAAltera FPGA配置与编程配置与编程配置与编程配置与编程 6.2 6.2 6.2 6.2 Xillinx FPGAXillinx FPGAXillinx FPGAXillinx FPGA配置配置配置配置 6.3 6.3 6.3 6.3 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用6.1 Altera FPGA6.1 Altera FPGA6.1 Altera FPGA6.1 Altera FPGA配置与编程配置与编程配置与编程配置与编程 FPGAFPGA的配置与编程是将用户经过软件的配置与编程是将用户经过软件设计与仿真验证的功能电路写入实际的设计与仿真验证的功能电路写入实际的FPGAFPGA芯片中的过程。
所有的芯片中的过程所有的FPGAFPGA芯片都需芯片都需要经过配置与编程才能实现用户需要的功要经过配置与编程才能实现用户需要的功能 FPGAFPGA上上nCONFIGnCONFIG的低到高变化表示的低到高变化表示配置过程的开始配置过程包括三个配置过程的开始配置过程包括三个阶段:复位、配置和初始化当阶段:复位、配置和初始化当nCONFIGnCONFIG为低时候,器件处于复位状态为低时候,器件处于复位状态当器件结束复位状态时,当器件结束复位状态时,nCONFIGnCONFIG必须必须处于逻辑高电平,使器件释放漏极开处于逻辑高电平,使器件释放漏极开路的路的nSTATUSnSTATUS管脚一旦管脚一旦nSTATUSnSTATUS被释被释放,它就会被上拉电阻拉到高电平,放,它就会被上拉电阻拉到高电平,此时此时FPGAFPGA准备好开始接收配置数据准备好开始接收配置数据从配置开始之前到配置结束,所有的从配置开始之前到配置结束,所有的用户用户I/OI/O管脚都处于高阻态管脚都处于高阻态 FPGA设计与应用设计与应用6.2 6.2 6.2 6.2 Xillinx FPGAXillinx FPGA配置配置配置配置 XillinxXillinx FPGAFPGA配配置置方方式式共共有有::JTAGJTAG或或边界界扫描描方方式式(JTAG (JTAG or or Boundary Boundary Scan Scan Mode)Mode)、、SelectMAPSelectMAP/Slave-Parallel/Slave-Parallel方方式式、、主主动串串行行方方式式((Master-serial Master-serial ModeMode))、、Slave-serialSlave-serial方方式式和和编程程器器配配置置方方式式((Standalone Standalone Programmer Programmer ModeMode))。
在在选择配配置置方方式式之之前前应该了了解解XillinxXillinx 公公司司各各FPGAFPGA系系列列具具备的的配配置置方方式式,,各各FPGAFPGA器器件件系系列列对配配置方式支持情况如下表所示置方式支持情况如下表所示 FPGA设计与应用设计与应用6.3 6.3 6.3 6.3 总结与结论总结与结论总结与结论总结与结论 FPGAFPGA器件的配置对于电子系统设计者而言较为重要的内容,但常器件的配置对于电子系统设计者而言较为重要的内容,但常常被忽视各种型号常被忽视各种型号FPGAFPGA数据手册及对数据手册及对FPGAFPGA的配置,的配置,FPGAFPGA厂商的官方厂商的官方网站有更为详细的介绍,建议读者通过本节阅读先对网站有更为详细的介绍,建议读者通过本节阅读先对FPGAFPGA器件配置产器件配置产生大致的认识,再根据被配置生大致的认识,再根据被配置FPGAFPGA器件的具体型号选择相关文档仔细器件的具体型号选择相关文档仔细阅读,使本节内容及阅读,使本节内容及FPGAFPGA公司相关文档相互配置指导您的工程实践公司相关文档相互配置指导您的工程实践。
FPGA设计与应用设计与应用第第7 7章章 FPGAFPGA的配置与的配置与编程程 7.1 7.1 7.1 7.1 3 3DESDES设计流程设计流程设计流程设计流程 7.2 7.2 7.2 7.2 3 3DESDES模块划分模块划分模块划分模块划分 7.5 7.5 7.5 7.5 总结与结论总结与结论总结与结论总结与结论 7.37.37.37.3 3 3DESDES设计过程设计过程设计过程设计过程 7.4 7.4 7.4 7.4 3 3DES-PCIDES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 FPGA设计与应用设计与应用 3 3DESDES是是DESDES的的一一个个更更安安全全的的变形形DESDES算算法法运运算算的的流流程程如如图所所示示其其中中S S盒盒是是3 3DESDES((DESDES))算法的心算法的心脏,靠它,靠它实现非非线性性变换 7.1 7.1 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 7.2 7.2 3 3DESDES模块划分模块划分模块划分模块划分 为了获得更高的安全性,三个密钥应该是互不相同的这样,本质上就相当于用一个长为168位的密钥进行加密多年来,它在对付强力攻击时是比较安全的对安全性需要不那么高的数据,K1可以等于K3在这种情况下,密钥的有效长度为112位 在通常使用的所有64位的分组密钥中,3DES是最安全的;但是,如果用软件来实现,它也是这些分组密钥中最慢的通过硬件设计,3DES的性能胜过大多数其它用软件实现的分组密钥 FPGA设计与应用设计与应用7.3 7.3 7.3 7.3 3DES3DES设计过程设计过程设计过程设计过程 ◆◆ DES算法高速运算电路模型设计算法高速运算电路模型设计 流水电路构架流水电路构架 控制电路控制电路 密钥生成模块密钥生成模块 DES算法运算电路算法运算电路 SBOX的设计与实现的设计与实现 3DES(DES)算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算。
这些特点为采用FPGA进行高速设计提供了契机由于3DES算法本质上就是三次DES算法的运算,所以只要了解DES算法的设计过程,也就了解了3DES算法的设计过程因此,下面就介绍一下DES算法的设计过程 FPGA设计与应用设计与应用7.3 7.3 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 7.3 7.3 3DES3DES设计过程设计过程设计过程设计过程 ◆◆ DES算法高速运算电路模型设计算法高速运算电路模型设计 控控制制电电路路 如图所示,控制电路是整个系统的控制中心,可以采用移位寄存器或计数器加译码电路构成,为减少信号毛刺,提高电路运算的稳定性与工作速度。
这里选用一个17bits的串入并出移位寄存器,其中16bits用于生成算法的每轮运算的使能信号,另外1bit用于生成指示加密输出的ready信号 FPGA设计与应用设计与应用7.3 7.3 7.3 7.3 3DES3DES设计过程设计过程设计过程设计过程 ◆◆ DES算法高速运算电路模型设计算法高速运算电路模型设计 密密钥钥生生成成模模块块 如图所示,与流水构架DES运算电路的工作时序相对应,其16步迭代运算所需子密钥必须同时生成密钥生成模块由选择控制电路PC-1、选择输出、压缩置换电路PC-2构成该部分的输入是64bits初始密钥,输出为每次迭代运算用的子密钥,使能控制信号、模式控制信号 64bits初始密钥经过置换选择PC-1去除校验位并被分离成左右两部分,各28bits,在模式控制信号(加密或脱密)及内部状态机信号控制下,根据移位表,选择输出,经压缩置换PC-2同时形成各步迭代所需运算子密钥 FPGA设计与应用设计与应用7.3 7.3 7.3 7.3 3DES3DES设计过程设计过程设计过程设计过程 ◆◆ DES算法高速运算电路模型设计算法高速运算电路模型设计 DES算法算法运算运算电路电路 如图所示为DES算法运算模块的电路构架,虚线框内所示为单轮运算。
电路由初始置换电路IP、4个32位的寄存器,扩展置换E处理电路、S盒数据代替电路、P盒置换电路及末置换IP-1电路构成 FPGA设计与应用设计与应用7.3 7.3 7.3 7.3 3DES3DES设计过程设计过程设计过程设计过程 ◆◆ DES算法高速运算电路模型设计算法高速运算电路模型设计 SBOX的设计的设计与实现与实现 S盒是DES算法的关键步骤,所有其它的运算都是线性的,而S盒是一个复杂的非线性函数,正是经过S盒的非线性变换才使明文得到了很好的混乱,从而具有较强的安全性在硬件实现时,S盒实现具有一定难度,其设计实现的好坏是影响算法整体加脱密速度的主要因素在算法设计过程中,从资源的角度出发,应尽可能的减少FPGA器件中逻辑单元、嵌入式阵列块及嵌入式单元的耗用,但这可能以降低系统速度为代价从速度的角度出发,应最大限度地提高系统处理速度,但这样往往需要较多资源因此,在大多数情况下这两种选择是矛盾的 使用verilog语言建立S盒电路模型,有两种方法可供选择:一种方法是使用verilog语言中的多重选择语句CASE,直接进行电路的行为描述;另一种方法是采用开发工具中提供的库函数,使用器件内部的EAB实现。
在建立S盒的电路模型时,必须充分考虑选用器件的内部结构,采用恰当的形式进行表达,做到既能节省器件资源又能提高算法运算效率,本例中选用前一种方式FPGA设计与应用设计与应用7.4 7.4 7.4 7.4 3 3DES-PCIDES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 ◆◆ 3DES卡结构设计卡结构设计 ◆◆ 6种种PCI安全卡典型结构性能分析和比较安全卡典型结构性能分析和比较 FPGA设计与应用设计与应用7.4 7.4 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 ◆◆ 3DES卡结构设计卡结构设计 安全卡的硬件系统结构设计在解决高速数据传输问题中起着极为重要的作用,同时在减小设计难度和提高可靠性方面也有很大作用3DES算法的FPGA硬件化是实现高速安全处理的必要条件但是,若硬件结构设计不合理,即使3DES算法芯片速度再高也不能实现高速加密系统缺乏针对高速硬件系统结构分析和研究将会产生性能不高的问题出现因此,要想实现3DES卡的高性能,减小设计难度和提高可靠性就必须对硬件系统结构进行深入的分析和设计。
一般PCI总线安全卡由嵌入式CPU为核心的管理子系统、PCI桥、安全专用芯片、控制ASIC芯片、安防措施、数据缓冲存储电路、网络接口、USB、RS232口等组成但是,影响实时安全处理速度的关键因素主要是嵌入式CPU、PCI桥、安全专用芯片、数据缓冲存储电路这四部分的性能和它们之间的组合关系因此,我们就以这四部分之间的组合关系为结构归类对象,对高速PCI安全卡硬件系统结构进行分析和归类,归纳为6种典型结构 FPGA设计与应用设计与应用7.4 7.4 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 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 ◆◆ 6种种PCI安全卡典型结构性能分析和比较安全卡典型结构性能分析和比较 数据主要路径是:放在微机系统内存的数据经PCI总线写入双端口SRAM中,卡上CPU只读出协议信息和管理信息,直接处理并给微机系统返回相关信息而安全芯片也作为能独立执行的智能控制器从双端口SRAM中读出数据并进行处理,然后把处理后的数据重新写入双端口SRAM中,再经PCI总线提交给微机系统处理 FPGA设计与应用设计与应用7.4 7.4 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 ◆◆ 6种种PCI安全卡典型结构性能分析和比较安全卡典型结构性能分析和比较 数据主要路径是:放在微机系统内存的数据经PCI总线写入输入FIFO中,卡上CPU把数据读出并交给安全芯片处理,然后卡上CPU再把处理后的数据写入输出FIFO中,再经PCI总线提交给微机系统处理对于协议信息和安全管理信息,卡上CPU不把此类数据送给安全芯片,而是直接处理并给微机系统返回相关信息。
FPGA设计与应用设计与应用7.4 7.4 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 ◆◆ 6种种PCI安全卡典型结构性能分析和比较安全卡典型结构性能分析和比较 数据主要路径是:放在微机系统内存的数据经PCI总线写入输入FIFO中,卡上CPU只读出协议信息和安全管理信息,直接处理并通过输出FIFO给微机系统返回相关信息而安全专用芯片也作为能独立执行的智能控制器从输入FIFO中读出数据并进行处理,然后把处理后的数据重新写入输出FIFO中,再经PCI总线提交给微机系统处理FPGA设计与应用设计与应用7.4 7.4 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 7.4 7.4 3DES-PCI3DES-PCI安全卡的设计安全卡的设计安全卡的设计安全卡的设计 ◆◆ 6种种PCI安全卡典型结构性能分析和比较安全卡典型结构性能分析和比较 接收数据主要路径是:发方来的数据从网络接口放在网络输入数据缓冲(FIFO)中,卡上CPU只读出报头数据并进行识别,对安全协议信息和安全管理信息,直接处理;对安全报文信息,CPU通知安全专用芯片读出并进行处理,然后安全专用芯片直接把处理后的明文数据写入输出FIFO中,再经PCI总线提交给微机系统处理发送数据主要路径是:本地微机把要处理的明文数据经PCI总线写入输入FIFO中,卡上CPU只读出报头数据并进行识别,对明文报文信息,由安全专用芯片读出并进行处理,然后安全专用芯片直接把处理后的数据写入网络输出数据缓冲中,卡上CPU把有关报头信息加在数据前面,经网络发到目的端;对于协议信息和安全管理信息,卡上CPU直接处理并给本地微机返回相关信息,或者通过卡上的网络接口发到目的端。
FPGA设计与应用设计与应用7.7.7.7.6666 总结与结论总结与结论总结与结论总结与结论 数字数字逻辑的的门类千千变万化,但就其本万化,但就其本质而言,只有而言,只有组合合逻辑和和时序序逻辑两大两大类它它们在复在复杂数字系数字系统的的设计中,各自承担着自己的中,各自承担着自己的责任一般情况下任一般情况下组合合逻辑可以可以用来完成用来完成简单的的逻辑功能,如多路器、与或非功能,如多路器、与或非逻辑运算、加法和乘法等算运算、加法和乘法等算术运算而而时序序逻辑则可以用来可以用来产生与运算生与运算过程有关的(按程有关的(按时间节拍)多个控制信号序列包拍)多个控制信号序列包括存括存储运算的运算的结果和取出存果和取出存储器中的数据在用可器中的数据在用可综合的硬件描述合的硬件描述语言言设计的复的复杂运算运算逻辑系系统中,往往用同步状中,往往用同步状态机来机来产生与生与时钟节拍密切相关(同步)的多个控拍密切相关(同步)的多个控制信号序列,用它来控制多路器或数据通道的开启制信号序列,用它来控制多路器或数据通道的开启/ /关关闭,来使有限的,来使有限的组合合逻辑运算运算器器资源得到充分的运行,并寄存有意源得到充分的运行,并寄存有意义的运算的运算结果,或把它果,或把它们传送到指定的地方,送到指定的地方,如有关部件的如有关部件的输入入/ /输出端口。
出端口 通通过对加密卡的加密卡的设计,展示出了,展示出了FPGAFPGA在加密卡上的在加密卡上的应用,用,让我我们从一个更高的从一个更高的角度来理解角度来理解FPGAFPGA的的设计,在以后的,在以后的设计实践中也有利于从践中也有利于从FPGAFPGA接口方面考接口方面考虑来完善来完善FPGAFPGA本身的本身的设计要注意的是,要注意的是,7.47.4节的重点不在于加密卡的重点不在于加密卡实现的的细节,而在于一种,而在于一种系系统的的设计理念,仔理念,仔细分析各种典型分析各种典型结构的好坏构的好坏优劣劣对于提高系于提高系统设计能力是很有能力是很有好好处的FPGA设计与应用设计与应用第8章第8章 FPGAFPGA发展展趋势 8888.1 .1 .1 .1 工艺技术的进步使工艺技术的进步使工艺技术的进步使工艺技术的进步使FPGAFPGA性能更强性能更强性能更强性能更强 8888.2 .2 .2 .2 设计理念的创新使设计理念的创新使设计理念的创新使设计理念的创新使FPGAFPGA向向向向SOPCSOPC方向发展方向发展方向发展方向发展 8888.3.3.3.3 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用8888.1 .1 .1 .1 工艺技术的进步使工艺技术的进步使工艺技术的进步使工艺技术的进步使FPGAFPGA性能更强性能更强性能更强性能更强 ◆◆ 更高性能更高性能 ◆◆ 更低成本更低成本 采用深亚微米的半导体工艺后,器件在性能提高的同时,价格也在逐步降低。
由于便携式应用产品的发展,对现场可编程器件的低压、低功耗的要求日益迫切因此,无论哪个厂家、哪种类型的产品,都在瞄准这个方向而努力例如在前面所提到的Xilinx公司的SpantanTM系列的FPGA、Altera公司的APEX 20KE器件、ACEX系列以及Actel公司的SX系列产品都是向高密度、低压、低功耗发展的典范 不仅如此,更有新型的公司以其特色的技术加入低压、低功耗芯片的竞争典型的如Philips Semiconductors推出的 CoolRunner 960,是一种具有960个宏单元的CPLD,无论在何种应用中,都能提供标准的6ns传输延迟、工作于3v的电压下该器件低功耗的关键是采用了Zero Power互连阵列,它用一个由外部逻辑实现的CMOS门,代替了其它CPLD常用的对电流敏感的运放这样当其它的相等规模的CPLD需要消耗250mA的静电流时,CoolRunner 960的耗电不到100mA 采用90nm工艺的FPGA,在容量对等的前提下,生产的FPGA的硅片尺寸变得更小,使得成本大为降低FPGA设计与应用设计与应用◆◆ IP复用复用 ◆◆ 混合混合FPGA 8888.2 .2 .2 .2 设计理念的创新使设计理念的创新使设计理念的创新使设计理念的创新使FPGAFPGA向向向向SOPCSOPC方向发展方向发展方向发展方向发展 为了更好的满足设计人员的需要,扩大市场,各大现场可编程逻辑器件的厂商都在不断的扩充其知识产权(IP)核心库。
这些核心库都是预定义的、经过测试和验证的、优化的、可保证正确的功能设计人员可以利用这些现成的IP库资源,高效准确的完成复杂片上的系统设计典型的IP核库有Xilinx公司提供的LogiCORE和AllianceCORE 半导体产品的一贯目标是以更小的尺寸、更低的成本和更小的功耗,获得更高的质量与性能从设计角度来看,它的趋势是以各种宏模块的集成来代替分离的芯片,混合FPGA便是这一趋势下的必然产物所谓混合FPGA,是指将各类数字电路单元(可编程逻辑、CPU/DSP、存储器等)和模拟电路单元(模拟线性电路、A/D、D/A等)的FPGA 随着IC技术的成熟与厂商间的激烈竞争,混合FPGA开始吸引IC厂商的目光,这也是由于其自身的特点造成的由于混合FPGA不必驱动芯片外的数字负载,因而可以满足产品对低功耗、高性能的要求此外,采用混合FPGA可减少所占用的印制电路板(PCB)实际面积,从而大大地降低成本因此,混合FPGA能以更小的尺寸、更低的成本和更小的功耗,获得更高的质量与性能,以强大的市场竞争力受到整机厂商的欢迎 FPGA设计与应用设计与应用8888. . . .3333 总结与结论总结与结论总结与结论总结与结论 综上上所所述述,,我我们可可以以看看到到在在新新世世纪,,以以FPGAFPGA为代代表表的的数数字字系系统现场集集成技成技术正朝着以下几个方向正朝着以下几个方向发展。
展 1 1、随着便携式、随着便携式设备需求的增需求的增长,,对现场可可编程器件的低程器件的低压、低功耗的、低功耗的要求日益迫切要求日益迫切 2 2、芯片向大、芯片向大规模系模系统芯片挺芯片挺进,力求在大,力求在大规模模应用中取代用中取代ASICASIC 3 3、、为增增强强市市场竞争力,各大厂商都在争力,各大厂商都在积极推广其知极推广其知识产权((IPIP))核心核心库 4 4、、动态可重构技可重构技术的的发展,将展,将带来系来系统设计方法的方法的转变。












