杭电第7章LPM宏模块的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用Quartus II以外的编辑器设计MIF文 件,地址和数据都是十六进制,冒号左 边是地址,右边是对应的数据。 存盘以mif为后缀。
7.3 LPM_RAM宏模块的设置与使 用
7.3.1 初始化文件及其生成 1..mif格式文件 (3)专用mif文件生成器
7.3 LPM_RAM宏模块的设置与使 用
Βιβλιοθήκη Baidu
7.3.5 存储器设计的结构控制
7.3 LPM_RAM宏模块的设置与使 用
7.3.5 存储器设计的结构控制
那么为何例7-6和例7-8综合后的结构有如此大的差别呢?这 涉及两方面的因素: (1)Verilog的表述形式。例7-6对存储器的输出Q,采用了 连续赋值语句。RAM数据端口是直接对外的,其输出口没有 任何锁存电路。显然,这样的结构描述无法使用FPGA中现成 的RAM位。 例7-8使用了两个过程语句,Q的输出增加了一个CLK信号控 制的锁存器。这样的描述恰好满足了FPGA内部RAM单元的这 种结构。
7.3 LPM_RAM宏模块的设置与使 用
7.3.5 存储器设计的结构控制 (2)调用嵌入式RAM单元的约束设置。正确而恰当的Verilog描述是综合器能调用 FPGA内RAM单元的基础,但却不一定能保证这项设计会自动调用RAM单元。这是因 为综合器还不知道用户的设计意图。为了使例7-8在综合后能使用现成的RAM单元构 建电路,必须对EDA工具的综合器作必要的约束设置。 Settings->Analysis & Synthesis Settings->More Settings>Auto RAM Replacement->On
8位D/A(设此示例之实验期间选择DAC0832)。
7.4 LPM_ROM的定制和使用示 例
7.4.2 简易正弦信号发生器设计
7.4 LPM_ROM的定制和使用示 例
7.4.3 正弦信号发生器硬件实现和测试
7.5 在系统存储器数据读写编辑器应 用
对 于 Cyclone/II/III/IV 等 系 列 的 FPGA , 只 要 对 使 用 的 LPM_ROM或LPM_RAM等存储器模块作适当设置,就能利 用Quartus II的在系统存储器读写编辑器,直接通过JTAG 口读取或改写 FPGA 内处于工作状态的存储器中的数据, 读取过程不影响FPGA的正常工作。
选择4位计数器; 选择“Create an updown input…”,使计数器有加减 控制功能。
7.1 计数器LPM宏模块调用
7.1.1 计数器LPM模块文本代码的调用 (3)再单击Next按钮,打开如图7-4所示的对话框
Plain binary: 普通二进制计数器
Modulus…:模()计数器
7.1 计数器LPM宏模块调用
7.1.3 创建工程与仿真测试
7.2 利用属性控制乘法器的构 建
为实现乘法器,如果按照通常表述方式,综合出的乘法器会占用大量逻 辑资源,而且速度不一定快。最常用的方法使调用FPGA内部已嵌入的硬 件乘法器,此类乘法器常用于DSP技术中,故称DSP模块。 纯组合逻辑方式 调用FPGA嵌入式乘法器方式
7.3 LPM_RAM宏模块的设置与使 用
7.3.4 存储器的Verilog代码描述 4.语句语法说明
initial过程语句结构中没有敏感信号表,即不带触发条件。Initial过程中的 块语句沿时间方向轴只执行一次。 initial语句最常用于仿真模块中对激励矢量的描述,或用于给寄存器变量 赋初值。而在实际电路中,赋初值是没有意义的,因此这是面向模拟仿真 的过程语句,通常不能被综合工具所接受,或在综合时被忽略,但却可以 对存储器加载初始化文件,这是可综合行为。
7.3 LPM_RAM宏模块的设置与使 用
7.3.2 以原理图方式对LPM_RAM进行设置和调用
7.3 LPM_RAM宏模块的设置与使 用
7.3.2 以原理图方式对LPM_RAM进行设置和调用
7.3 LPM_RAM宏模块的设置与使 用
7.3.2 以原理图方式对LPM_RAM进行设置和调用
7.3 LPM_RAM宏模块的设置与使 用
如果在纯代码的Verilog程序中的存储器调用初始化文件则必须使用特定的指示语句。
方法1:利用Quartus II给定的属性语句。这些语句仅限于Quartus II 平台使 用。
第二种方法是直接利用Verilog语言,即利用过程语句initial和系统函数$readmemh。由 于所用的是标准的Verilog语句,其表述方法具有一般性,所以不局限于Quartus II一种 EDA软件环境。 由于使用了过程语句initial和系统函数$readmemh,初始化数据文件的格式必须是.dat 文件。 例7-7中的mem的表述格式是mem[0:127],这与例7-6不同。这是因为综合器只会 以.dat文件中的数据排列顺序对应的形式加载到mem[0:127]存储器中,而.dat文件中 的数据排列顺序是默认从低位(低地址位)开始排列的。
7.3.1 初始化文件及其生成
2..hex格式文件 (1)方法1:New -> Hexadecimal (Intel-Format) File ->存盘为.hex格式文件。 (2)方法2:利用汇编程序编辑器将数据编辑于HEX数据编辑窗中,然后用汇编编 译器产生.hex格式文件。 3..dat格式文件 .mif和.hex格式文件是与具体开发软件相关的,因为它们在Verilog文本中调用必 须使用Quartus II规定的属性表述。而.dat格式的数据文件的调用则可用标准的 Verilog语句直接实现。.dat文件的数据格式也最简单,其形式如下:
7.3 LPM_RAM宏模块的设置与使 用
7.3.1 初始化文件及其生成 1..mif格式文件 (1)直接编辑法 File -> New -> Memory Initialization File ->产生MIF数据文件大小选择窗口。
7.3 LPM_RAM宏模块的设置与使 用
7.3.1 初始化文件及其生成 1..mif格式文件 (2)文件编辑法
7.6 LPM嵌入式锁相环调用
Cyclone/II/III/IV和Stratix/II/III/IV等系列的FPGA中含有高性能的嵌入式模拟 锁相环,此锁相环PLL可以与一输入的时钟信号同步,并以其作为参考信号实现锁 相,从而输出一至多个同步倍频或分频的片内时钟,以供逻辑系统应用。 与直接来自外部的时钟相比,这种片内时钟可以减少时钟延时和时钟变形, 减少片外干扰;还可以改善时钟的建立时间和保持时间,是系统稳定高速工作的 保证。 嵌入式锁相环能对输入的参考时钟相对于某一输出时钟同步独立乘以或除以 一个因子而输出含小数的精确频率,或直接输入所需要输出的频率,并提供任意 相移和输出信号占空比。
7.4 LPM_ROM的定制和使用示 例
7.4.1 LPM_ROM的调用
MegaWizard Plug-In Manager -> Memory Compiler -> ROM:1-PORT
7.4 LPM_ROM的定制和使用示 例
7.4.2 简易正弦信号发生器设计
地址信号发生器:由计数器构成。
正弦信号数据存储器ROM:含有128个8位波形数据(一个正弦波周期)。
7.1.2 LPM计数器代码与参数传递语句
7.1 计数器LPM宏模块调用
7.1.2 LPM计数器代码与参数传递语句 使用时注意defparam语句只能将参数传递到比当前层次仅低一层的元件文件中, 即当前的例化文件中,不能更深入进去。
为了能调用计数器文件CNT4B.v,并测试和硬件实现它,必须设计一个程序来例 化它。例7-3就是实现了这个功能。
7.1 计数器LPM宏模块调用
7.1.1 计数器LPM模块文本代码的调用 (1)打开宏功能块调用管理器 建立工程文件夹,如d:\LPM_MD, 选 择Tools->MegaWizard Plug-In Manager命令。
7.1 计数器LPM宏模块调用
7.1.1 计数器LPM模块文本代码的调用 (2)单击Next按钮后打开如图7-3所示的对话框
(2)读取ROM中的数据。
7.5 在系统存储器数据读写编辑器应 用
(3)写数据。
修改完成后,在 Processing菜单中选 择Write Data to InSystem Memory命令, 即可将编辑后的所有 数据通过JTAG口下 载于FPGA中的 LPM_ROM中。
(4)输入输出数据文件。 可以通过快捷菜单中的 Export Data to File或Import Data from File命令, 可将在系统读出的数据以MIF或HEX的格式文件存入计算机中,或将此类 格式的文件“在系统”地下载到FPGA中去。
以R2为输出口的乘法器以纯组合逻辑方式的宏单元构建。 以R1为输出口的乘法器调用FPGA的嵌入式乘法器来构建。
例7-4的编译报告
7.2 利用属性控制乘法器的构 建
如果要求整个模块内的乘法器构建方式都用DSP模块,则可如下定义:
也可以通过Quartus II来设置。方法是:Settings -> Analysis & Synthesis Settings -> More Settings -> 对DSP Blocking Balancing项选择DSP blocks。
7.3 LPM_RAM宏模块的设置与 使用
在涉及RAM和ROM等存储器应用的设计开发中,调用LPM 模块类存储器是最方便的、最经济高效和性能最容易满足设 计要求的途径。 存储器的初始化文件就是可配置于RAM或ROM中的数据或程 序文件代码。在EDA 设计中,通过EDA工具设计或设定的存 储器中的代码文件必须由EDA软件在统一编译的时候自动调 入。 Quartus II能接受两种格式的初始化文件:.mif格式和.hex 格式。
Quartus II的宏功能模块与LPM函数包括:
算数组件,包括累加器、加法器、乘法器和LPM算数函数 等。 组合电路,包括多路选择器、比较器和LPM门函数。 I/O组件,包括时钟数据恢复(CDR)、锁相环(PLL)、 双数据速率(DDR)、千兆位收发器块(GXB)、LVDS接 收器和发送器等。 存储器编译器,包括FIFO、RAM、ROM等。 存储组件,包括存储器、移位寄存器模块等。 以及各类专业核,比如单片机IP等。
Clock Enable: 时钟使能控制 Carry-out:进位输出
7.1 计数器LPM宏模块调用
7.1.1 计数器LPM模块文本代码的调用 (4)再单击Next按钮,打开如图7-5所示的对话框
选择同步加载和异步清0。
以上流程设置生成了LPM计数器的Verilog文件CNT4B.v,可被高一层次的 Verilog程序作为计数器元件调用。
7.3 LPM_RAM宏模块的设置与使 用
7.3.4 存储器的Verilog代码描述 1.存储器端口描述
两种描述方式等价
2.存储器的Verilog一般描述
7.3 LPM_RAM宏模块的设置与使 用
7.3.4 存储器的Verilog代码描述 3.存储器中初始化文件的调用与配置 从前面的内容可以看到,向编辑好的存储器中调用初始化文件可以利用LPM模块调 用的编辑器在特定的对话框中选择设定。
第7章
LPM宏模块的应用
下次课实验课,2教237,11月13日。 实验内容:简易正弦信号发生器设计(利 用SignalTap II进行观测),书p178-179, 并可参考第四版p201。
LPM: Library of Parameterized Modules (参 数可设置模块库)。用户可调用LPM库中的模 块,并为其设定适当的参数,就能满足设计 需要。
7.5 在系统存储器数据读写编辑器应 用
(1)打开在系统存储单元编辑窗口。 Quartus II的在系统存储器读写编辑器直接通过JTAG口读取或改写FPGA内处于 工作状态的存储器中的数据,读取过程不影响FPGA的正常工作。 Tool->In-System Memory Content Editor,弹出如下编辑窗口。
7.3.2 以原理图方式对LPM_RAM进行设置和调用
7.3 LPM_RAM宏模块的设置与使 用
7.3.2 以原理图方式对LPM_RAM进行设置和调用
7.3 LPM_RAM宏模块的设置与使 用
7.3.3 测试LPM_RAM
7.3 LPM_RAM宏模块的设置与使 用
7.3.4 存储器的Verilog代码描述