




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA CPLD原理及应用 山东工商学院电子信息系张守祥zhangsx 第6章宏模块和LPM函数的应用 SoPC 在FPGA技术的发展过程中 很多优秀的数字系统设计人员积累了大量设计成果 Altera公司对其中一些成果在Altera器件的结构做了优化设计 使之在Altera特定器件结构中发挥出最佳性能 最终形成了参数化宏功能模块库LPM IP核的概念 IP设计技术 IP技术是针对可复用的设计而言的 其本质特征是功能模块的可复用性 IP通常满足以下基本特征 通用性好正确性有100 的保证可移植性好 IP核设计的理想目标是即插即用 但就目前来看 离这个目标还很远 基于标准片上总线 OCB 具有标准接口是IP发展的方向 SoPC 最常见的IP核 ARM IP核的概念 IP核的概念 IP的含义与分类IP IntellectualProperty 即知识产权 在集成电路设计中 IP指可以重复使用的具有自主知识产权功能的集成电路设计模块 基于IP的SoC设计具有易于增加新功能和缩短上市时间的显著特点 是IC设计当前乃至今后若干年的主流设计方式 按照设计层次的不同 IP核可以分为三种 软核 SoftCore 固核 FirmCore 硬核 HardCore 软核 SoftCore 软核只完成RTL级的行为设计 以HDL的方式提交使用 该HDL描述在逻辑设计上做了一定优化 必须经过仿真验证 使用者可以用它综合出正确的门级网表 软核不依赖于实现工艺或实现技术 不受实现条件的限制 具有很大的灵活性和可复用性 软核为后续设计留有比较大的空间 使用者可以通过修改源码 完成更具新意的结构设计 生成具有自主版权的新软核 由于软核的载体HDL与实现工艺无关 使用者要负责从描述到版图转换的全过程 模块的可预测性低 设计风险大 使用者在后续设计中仍有发生差错的可能 这是软核最主要的缺点 固核 FirmCore 固核比软核有更大的设计深度 己完成了门级综合 时序仿真并经过硬件验证 以门级网表的形式提交使用 只要用户提供相同的单元库时序参数 一般就可以正确完成物理设计 固核的缺点是它与实现工艺的相关性和网表的难读性 前者限制了固核的使用范围 后者则使得布局布线后发生的时序问题难以排除 硬核 HardCore 硬核以IC版图的形式提交 并经过实际工艺流片验证 显然 硬核强烈地依赖于某一个特定的实现工艺 而且对具体的物理尺寸 物理形态及性能上具有不可更改性 硬核是IP核的最高形式 同时也是最主要的形式 国际上对硬核的开发和应用都非常重视 特别是近几年来发展迅速 三种不同形式的IP核 IP核有三种不同的存在形式 HDL语言形式 网表形式和版图形式 HDL语言形式是讲这种电路单元用HDL语言描述出来 由于直接是HDL代码 因此可修改性最高 甚至可以在功能上大修改 所以是 软 的 而被做成版图的IP核基本不可修改 只能对应特定的工艺库 所以是 硬 的 做成网表的IP从功能上来说基本不可修改 但是没有和特定的工艺库绑定 从选择工艺库的角度来说是可改的 所以借鉴了 固件 的说法 是一种介于 软 和 硬 之间的状态 LPM模块的使用 知识要点 LPM libraryofParameterizedModules参数化的模块库 其模块使用参数和端口信号进行描述 通过设置参数和端口信号 可以实现不同的功能 其模块可称之为参数化模块或者LPM模块或者LPM宏功能块 模块设置参数 设置大小 端口信号设置 设置使用哪些端口信号和信号属性等 其中输入端口信号有缺省值 也可以自己设置 LPM功能模块 6 1宏功能模块概述 数据类型类型类型描描述描述描述 算术组件 包括累加器 加法器 乘法器和LPM算术函数 门电路 包括多路复用器和LPM门函数 I O组件 包括锁相环 PLL DDR 双倍速率同步动态随机存储器 千兆位收发器块 GXB LVDS接收器和发送器 PLL重新配置和远程更新宏功能模块 存储器编译器 包括FIFO RAM和ROM宏功能模块 存储组件 包括存储器 移位寄存器宏模块和LPM存储器函数 Altera提供的宏功能模块与LPM函数有 6 1宏功能模块概述 6 1 1知识产权 IP 核的应用 AMPP程序 MegaCore函数 OpenCore评估功能 OpenCorePlus硬件评估功能 宏功能模块概述 Altera宏功能模块 Megafunction 的三种来源MegafunctionsfromtheAlteraMegafunctionPartnersProgramAMPP Altera宏功能合作伙伴计划 提供的第三方IPCoreMegafunctionscreatedbyAltera knownasMegaCore functionsAltera器件专有的Megafunction 由Altera公司提供的IPCoreEIA标准的LPM库 LibraryofParameterizedModules参数化模块库 LPM库是一个不依赖特定硬件的逻辑模块库 EDA标准 ALTERA推荐使用经优化的Megafunction增强设计 特别是针对一些与Altera器件底层结构相关的特性 必须通过Megafunction实现 使用Megafunction将大大的减少设计风险及缩短开发周期 Megafunction可以使设计师将更多时间和精力放在改善及提高系统级的产品上 而不要重新开发现成的Megafunction IP 知识产权 一个好的IPCore要具备可靠 可重用 可配置 可测试的特性 还应有详细准确的说明文档最成功的IP提供商之一 虽然只有LPM 部分器件专有的Megafunction是免费的 但是这些免费的模块也足够满足大多数设计的需要 LPM库只有25个基本模块就号称可以完成所有的设计 评估付费Megafunction 使用开放式内核 OpenCore 技术 其设计流程如右图所示 如何用好Altera的Megafunction 认真阅读文档并执行必要的配置工作 无风险 开放式内核的设计流程 想获取Altera产品的最新 最权威的资料 请访问 AlteraIP AlteraMegafunctionPartnersProgram AMPP是ALTERA宏功能模块 IP内核开发伙伴的组织 通过这个联盟 AMPP的所有厂商提供基于ALTERA器件优化的宏功能模块 IP内核 有关ALTERA的宏功能库及IP内核的标志介绍 MegaCore是ALTERA直接开发完成的 并有详尽的使用资料的宏功能模块 IP内核 针对ALTERA的器件作了特别的优化处理 达到并满足用户所指定的性能指标 ALTERA提供MegaCore是为了帮助客户完成条件要求较苛刻的系统应用以及减少设计风险和开发时间 ALTERA的MaxplusII和Quartus平台均提供各种开放宏功能模块评估的功能 允许用户在购买某个宏功能模块之前 进行设计 编译 仿真 Altera随QuartusII附带的宏功能模块有以下五类 算术组件 包括累加器 加法器 乘法器和LPM算术函数门电路 包括多路复用器和LPM门函数I O组件 包括锁相环 PLL 倍速率同步随机存储器 DDR 千兆位收发器块 GXB LVDS接收器和发送器 PLL重新配置和远程更新宏功能模块存储器编译器 包括FIFO RAM和ROM宏模块存储组件 存储器 移位寄存器宏模块和LPM存储器函数其余宏功能模块在QuartusII上只有其网络链接使用资料 Help Megafunctions LPM利用Megafunction进行项目设计的步骤 1 利用MegaWizardPlug InManager MegaWizard插件管理器 建立或修改包含自定义宏功能模块的设计文件2 在顶层设计文件中对这些文件进行例化 AlteraIP 6 1宏功能模块概述 6 1 2使用MegaWizardPlug InManager 6 1宏功能模块概述 6 1 3在QuartusII中对宏功能模块进行例化 1 在VHDL中例化 2 使用端口和参数定义 原理图 3 使用端口和参数定义生成宏功能模块 计数器 加法 减法器 乘法器 乘 累加器和乘 加法器 RAM 移位寄存器 6 2LPM模块应用实例 使用LPM COUNTER模块实现数控分频器各端口信号的意义和设置参数的设置分频比二分频和占空比仿真波形 数控分频器电路原理图 基于LPM COUNTER的数控分频器设计 当d 3 0 12 即16进制数 C 时的工作波形 数控分频器工作波形 6 2LPM模块应用实例 6 2 1信号发生器电路设计 正弦波 正弦波数据存储ROM 波形数据输出DAC 地址发生器counter 数据个数 32个数据位数 8位 输出位数 地址位数 6 2LPM模块应用实例 6 2 2定制LPM ROM初始化数据文件 1 建立 mif格式文件 例6 1 WIDTH 8 DEPTH 64 ADDRESS RADIX HEX DATA RADIX HEX CONTENTBEGIN0 FF 1 FE 2 FC 3 F9 4 F5 数据略去 3D FC 3E FE 3F FF END 6 2LPM模块应用实例 6 2 2定制LPM ROM初始化数据文件 2 建立 mif格式文件 例6 2 include stdafx h include include math h definePI3 14159intmain inti floats for i 0 isin rom mif 6 2LPM模块应用实例 6 2 2定制LPM ROM初始化数据文件 3 建立 mif格式文件 将波形数据填入mif文件表中 6 2 3定制LPM ROM元件 图6 5定制新的宏功能块 6 2LPM模块应用实例 6 2 3定制LPM ROM元件 图6 6LPM宏功能块设定 6 2 3定制LPM ROM元件 选择data rom模块数据线和地址线宽度 6 2LPM模块应用实例 6 2 3定制LPM ROM元件 选择地址锁存信号inclock 6 2LPM模块应用实例 6 2 3定制LPM ROM元件 调入ROM初始化数据文件并选择在系统读写功能 6 2 3定制LPM ROM元件 LPM ROM设计完成 6 2LPM模块应用实例 例6 3 修改后的用于例化的波形数据ROM文件 data rom vhdLIBRARYieee USEieee std logic 1164 all LIBRARYaltera mf USEaltera mf altera mf components all 使用宏功能库中的所有元件ENTITYdata romISPORT address INSTD LOGIC VECTOR 5DOWNTO0 inclock INSTD LOGIC q OUTSTD LOGIC VECTOR 7DOWNTO0 ENDdata rom ARCHITECTURESYNOFdata romISSIGNALsub wire0 STD LOGIC VECTOR 7DOWNTO0 COMPONENTaltsyncram 例化altsyncram元件 调用了LPM模块altsyncram 接下页 GENERIC 参数传递语句intended device family STRING 类属参量数据类型定义width a NATURAL widthad a NATURAL numwords a NATURAL operation mode STRING outdata reg a STRING address aclr a STRING outdata aclr a STRING width byteena a NATURAL init file STRING lpm hint STRING lpm type STRING PORT clock0 INSTD LOGIC altsyncram元件接口声明address a INSTD LOGIC VECTOR 5DOWNTO0 q a OUTSTD LOGIC VECTOR 7DOWNTO0 ENDCOMPONENT BEGINq Cyclone 参数传递映射width a 8 数据线宽度8widthad a 6 地址线宽度6numwords a 64 数据数量64operation mode ROM LPM模式ROMoutdata reg a UNREGISTERED 输出无锁存address aclr a NONE 无异步地址清0outdata aclr a NONE 无输出锁存异步清0width byteena a 1 byteena a输入口宽度1init file dataHEX SDATA hex ROM初始化数据文件lpm hint ENABLE RUNTIME MOD YES INSTANCE NAME NONE lpm type altsyncram LPM类型PORTMAP clock0 inclock address a address q a sub wire0 ENDSYN 例6 3 6 2 4完成顶层设计 例6 4 正弦信号发生器顶层设计LIBRARYIEEE 正弦信号发生器源文件USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYSINGTISPORT CLK INSTD LOGIC 信号源时钟DOUT OUTSTD LOGIC VECTOR 7DOWNTO0 8位波形数据输出END 6 2LPM模块应用实例 ARCHITECTUREDACCOFSINGTISCOMPONENTdata rom 数据存储器LPM ROM文件声明PORT address INSTD LOGIC VECTOR 5DOWNTO0 地址信号inclock INSTD LOGIC 地址锁存时钟q OUTSTD LOGIC VECTOR 7DOWNTO0 ENDCOMPONENT SIGNALQ1 STD LOGIC VECTOR 5DOWNTO0 设定内部节点作为地址计数器BEGINPROCESS CLK LPM ROM地址发生器进程BEGINIFCLK EVENTANDCLK 1 THENQ1Q1 q DOUT inclock CLK 例化END 例6 4 正弦信号发生器顶层设计 6 2 4完成顶层设计 6 2LPM模块应用实例 图6 11仿真波形输出 嵌入式逻辑分析仪获得的波形 6 3在系统存储器数据读写编辑器应用 In SystemMemoryContentEditor编辑窗 6 3在系统存储器数据读写编辑器应用 与实验系统上的FPGA通信正常情况下的编辑窗界面 6 3在系统存储器数据读写编辑器应用 从FPGA中的ROM读取波形数据 6 3在系统存储器数据读写编辑器应用 下载编辑数据后的SignalTapII采样波形 图6 16编辑波形数据 6 4编辑SignalTapII的触发信号 选择高级触发条件 6 4编辑SignalTapII的触发信号 进入 触发条件函数编辑 窗口 6 4编辑SignalTapII的触发信号 编辑触发函数 6 5 1RAM定制 6 5其它存储器模块的定制与应用 编辑定制RAM 6 5 1RAM定制 6 5其它存储器模块的定制与应用 LPM RAM的仿真波形 6 5 2FIFO定制 6 5其它存储器模块的定制与应用 FIFO编辑窗 6 5 2FIFO定制 6 5其它存储器模块的定制与应用 FIFO的仿真波形 6 5 3基于LPM ROM的4位乘法器设计 6 5其它存储器模块的定制与应用 例6 5 WIDTH 8 DEPTH 256 ADDRESS RADIX HEX DATA RADIX HEX CONTENTBEGIN00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 10 00 11 01 12 02 13 03 14 04 15 05 16 06 17 07 18 08 19 09 20 00 21 02 22 04 23 06 24 08 25 10 26 12 27 14 28 16 29 18 30 00 31 03 32 06 33 09 34 12 35 15 36 18 37 21 38 24 39 27 40 00 41 04 42 08 43 12 44 16 45 20 46 24 47 28 48 32 49 36 50 00 51 05 52 10 53 15 54 20 55 25 56 30 57 35 58 40 59 45 60 00 61 06 62 12 63 18 64 24 65 30 66 36 67 42 68 48 69 54 70 00 71 07 72 14 73 21 74 28 75 35 76 42 77 49 78 56 79 63 80 00 81 08 82 16 83 24 84 32 85 40 86 48 87 56 88 64 89 72 90 00 91 09 92 18 93 27 94 36 95 45 96 54 97 63 98 72 99 81 END 6 6流水线乘法累加器的混合输入设计 DSP 1 用VHDL设计16位加法器 6 6流水线乘法累加器的混合输入设计 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYADDER16BISPORT CIN INSTD LOGIC A B INSTD LOGIC VECTOR 15DOWNTO0 S OUTSTD LOGIC VECTOR 15DOWNTO0 COUT OUTSTD LOGIC ENDADDER16B ARCHITECTUREbehavOFADDER16BISSIGNALSINT STD LOGIC VECTOR 16DOWNTO0 SIGNALAA BB STD LOGIC VECTOR 16DOWNTO0 BEGINAA 0 2 顶层原理图文件设计 6 6流水线乘法累加器的混合输入设计 在原理图编辑窗加入LPM元件 2 顶层原理图文件设计 6 6流水线乘法累加器的混合输入设计 编辑LPM乘法器 2 顶层原理图文件设计 6 6流水线乘法累加器的混合输入设计 加入所有相关元件 2 顶层原理图文件设计 6 6流水线乘法累加器的混合输入设计 乘法累加器电路 3 仿真 6 6流水线乘法累加器的混合输入设计 muladd工程仿真波形 6 7 1建立嵌入式锁相环元件 6 7LPM嵌入式锁相环调用 选择参考时钟为16MHz 6 7 1建立嵌入式锁相环元件 6 7LPM嵌入式锁相环调用 选择控制信号 6 7 1建立嵌入式锁相环元件 6 7LPM嵌入式锁相环调用 选择c0的片内时钟倍频为2 6 7 2测试锁相环 6 7LPM嵌入式锁相环调用 PLL元件的仿真波形 建立一个存储本班级全部同学学号的ROM 在仿真时能根据ROM地址显示出自己的学号 要求 下周上课前 发送数据文件和仿真结果 屏幕截图 到zhangsx 邮件主题为 FPGA ROM 8位学号 姓名 习题 设计一个简化的计算机模型CPU MEM 选择实现CPU的方法 硬连线逻辑 HardWired 微程序 MicroProgram HDL EDA工具 VHDLQuartus 以下为VHDL代码的基本框架 CPU设计 指令集和架构定义 电路设计 半导体制造工艺 ISAArchitecture micro architecturePipeline ProcessLayout 设计一个简化的CPU 设计一个简化的处理器 字长8位 并使其与内存MEM连接 用VHDL以RTL风格描述 该处理器当前执行的指令存放在指令寄存器IR中 指令集仅算逻指令和访问内存指令 CPU结构 取指 CPU要从存储器中读取指令 译码 翻译指令用以确定要执行的操作 取数据 指令的执行可能会要求从存储器或I O模块中读取数据 处理数据 指令的执行可能会要求对数据进行算术或逻辑运算操作写数据 指令执行的结果可能需要写入存储器或者I O模块中 设计一个简化的CPU CPU内部结构 设计一个简化的CPU CPU内部寄存器 MAR MemoryAddressRegister MAR存放着要从存储器中读取或要写入存储器的存储器地址 读 定义为CPU从内存中读 写 定义为CPU把数据写入内存 MAR拥有8比特 可以存取256个地址 设计一个简化的CPU CPU内部寄存器 MDR MemoryDataRegister MDR存储着将要被存入内存或者最后一次从内存中读出来的数值 MDR有16比特 PC ProgramCounter PC寄存器用来跟踪程序中将要使用的指令 PC有8比特 设计一个简化的CPU CPU内部寄存器 IR InstructionRegister IR存放指令的OPCODE 操作码 部分 IR有8比特 BR BufferRegister BR作为ALU的一个输入 存放着ALU的一个操作数 BR有16比特 ACC Accumulator ACC保存着ALU的另一个操作数 而且通常ACC存放着ALU的计算结果 ACC有16比特 设计一个简化的CPU 设计一个简化的CPU 1 程序 指令序列 预先存放在MEM里 程序执行时 需要从MEM中取指令 建议用调用库单元lpm ram dq的方法实现MEM 2 恰当使用变量和信号 信号用于进程之间的通信 变量用于进程 以及函数 过程 内部保存数据 变量的新值可在赋值语句执行后立即得到 而信号的新值在赋值语句执行后必须经过延迟才能得到 3 某些信号 以及变量 需要受时钟控制 有些则不必受时钟控制 受时钟控制的信号所对应的硬件必定是寄存器 不受时钟控制的信号所对应的硬件有可能是组合逻辑 其成本较低 并且形成该信号的时延可能较小 设计要点 CPU的指令集 CPU的指令集 CPU的指令集 MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR ACC memory MBR MAR PC STORE CPU的指令集 MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR memory ACC 0BR MBR ACC ACC BR MAR PC LOAD CPU的指令集 ADD MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR memory BR MBR ACC ACC BR MAR PC CPU的指令集 SUB MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR memory BR MBR ACC ACC BR MAR PC CPU的指令集 MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR memory BR MBR ACC ACCandBR AND CPU的指令集 OR MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR memory BR MBR ACC ACCorBR MAR PC CPU的指令集 NOT MBR memory IRopcode MBR ACC notACCPC PC 1 MAR PC CPU的指令集 MBR memory IRopcode MBR MAR MBR7 0PC PC 1 MBR memory BR MBR ACC ACC BR L MR ACC BR H MAR PC MPY CPU的指令集 MBR memory IRopcode MBR ACC shiftrACCPC PC 1 MAR PC SHIFTR SHIFTL MBR memory IRopcode MBR ACC shiftlACCPC PC 1 MAR PC CPU的指令集 MBR memory IRopcode MBR PC MBR 7 0 MAR PC flag 0 PC PC 1 N Y JMP 对VHDL代码执行编译 编译创建一个符号图 CPU MEM Computer 调用库元件lpm ram dq将测试程序加载于存储器模块 CPU是自己编写的模块Memory是调用库元件 在顶层computer中将二者相连 ACCholdsoneoperandforALU andgenerallyACCholdsthecalculationresultofALU ACChas16bits ACC Accumulator CPU电路组成 ALUisacalculationunitwhichaccomplishesbasicarithmeticandlogicoperations ALU ArithmeticLogicUnit CPU电路组成 IRcontainstheopcodepartofaninstruction Inourdesign IRhas8bits BR BufferRegister BRisusedasaninputofALU itholdsotheroperandforALU Inourdesign BRhas16bits IR InstructionRegister CPU电路组成 MARcontainsthememorylocationofthewordtobereadfromthememoryorwrittenintothememory Here READoperationisdenotedastheCPUreadsfrommemory andWRITEoperationisdenotedastheCPUwritestomemory MARhas8bitstoaccessoneof256addressesofthememory MAR MemoryAddressRegister CPU电路组成 MBRcontainsthevaluetobestoredinmemoryorthelastvaluereadfrommemory MDRisconnectedtotheaddresslinesofthesystembus MDRhas16bits MDR MemoryDataRegister CPU电路组成 PCkeepstrackoftheinstructionstobeusedintheprogram Inourdesign PChas8bits PC ProgramCounter CPU电路组成 MRisusedforimplementingtheMPYinstruction holdingthemultiplieratthebeginningoftheinstruction Whent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲状腺联合用药课件
- 甬温线特大铁路事故
- 江苏泰州2014-2022年中考满分作文63篇
- tang原创课件教学设计
- 初中化学教学课件范文
- 统编版语文九年级上册第5课你是人间的四月天练习题(含答案)
- 2024-2025学年上海市曹杨二中附校八年级(下)5月月考数学试卷(含答案)
- 新解读《GB-T 4096.2-2022产品几何技术规范(GPS) 楔体 第2部分:尺寸与公差标注》
- 用户运营基础知识培训课件
- 用奇谋孔明借箭课件
- 中学语文教学资源开发与利用指南
- 2025年材料管理岗位考试题库
- 年级主任职责详解及管理要点
- 储能项目投资测算方案
- 【25秋】统编版小学语文二年级上册-《第八单元大单元设计》课件
- 2025年长沙中考化学试卷真题解读及复习备考指导
- 舆情安全管理办法
- 替换车管理办法规定
- 厨房4D管理课件下载
- 临床营养学病例报告
- 危险作业票 安全作业票格式模板 动火登高煤气受限空间作业票
评论
0/150
提交评论