第 7 章 宏功能模块与 ip 应用

50
第7第 第第第第第第 IP 第第

Upload: avye-pugh

Post on 30-Dec-2015

69 views

Category:

Documents


3 download

DESCRIPTION

第 7 章 宏功能模块与 IP 应用. LPM. 参数可设置模块库 Library of Parameterized Modules 是一个 EDA 标准 参考: www.eda.org. IP (知识产权). 设计可重用 缩短设计时间 经验证 设计加密 SoC 、 SOPC 的基础 最成功的 IP 提供商之一:. 7.1 宏功能模块概述. Altera 提供的宏功能模块与 LPM 函数有:  算术组件: 包括累加器、加法器、乘法器和 LPM 算术函数;  门电路: 包括多路复用器和 LPM 门函数。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章   宏功能模块与 IP 应用

第 7 章

宏功能模块与 IP 应用

Page 2: 第 7 章   宏功能模块与 IP 应用

LPM • 参数可设置模块库• Library of Parameterized Modules

• 是一个 EDA 标准• 参考: www.eda.org

Page 3: 第 7 章   宏功能模块与 IP 应用

IP (知识产权)• 设计可重用• 缩短设计时间• 经验证• 设计加密

• SoC 、 SOPC 的基础• 最成功的 IP 提供商之一:

Page 4: 第 7 章   宏功能模块与 IP 应用

Altera 提供的宏功能模块与 LPM 函数有: 算术组件: 包括累加器、加法器、乘法器和 LPM 算术

函数; 门电路: 包括多路复用器和 LPM 门函数。 I/O 组件: 包括时钟数据恢复 (CDR) 、锁相环 (PLL) 、

双数据速率 (DDR) 、千兆位收发器块 (GXB) 、 LVDS 接收器和发送器、 PLL 重新配置和远程更新宏功能模块。

存储器编译器:包括 FIFO Partitioner 、 RAM 和ROM 宏功能模块。

存储组件: 包括存储器、移位寄存器宏模块和 LPM存储器函数。

7.1 宏功能模块概述

Page 5: 第 7 章   宏功能模块与 IP 应用

使用 MegaWizard Plug-In Manager

Page 6: 第 7 章   宏功能模块与 IP 应用
Page 7: 第 7 章   宏功能模块与 IP 应用
Page 8: 第 7 章   宏功能模块与 IP 应用

MegaWizard Plug-In Manager 输出文件

< 输出文件 >.inc : 宏功能模块包装文件中模块的 AHDL 包含文件。 < 输出文件 >.tdf : 要在 AHDL 设计中实例化的宏功能模块包装文件。 < 输出文件 >.vhd : 要在 VHDL 设计中实例化的宏功能模块包装文件。 < 输出文件 >.v : 要在 VerilogHDL 设计中实例化的宏功能模块包装文件。 < 输出文件 >_bb.v : VerilogHDL 设计所用宏功能模块包装文件中模块的空

体或• black-box 申明,用于在使用 EDA 综合工具时指定端口方向。 < 输出文件 >_inst.tdf : 宏功能模块包装文件中子设计的 AHDL 例化示例。 < 输出文件 >_inst.vhd : 宏功能模块包装文件中实体的 VHDL 例化示例。 < 输出文件 >_inst.v : 宏功能模块包装文件中模块的 VerilogHDL 例化示

例。• 可以在命令提示符下键入以下命令,实现在 Quartus II 软件之外使用

MegaWizard• Plug-In Manager : qmegawiz r

Page 9: 第 7 章   宏功能模块与 IP 应用

在 QuartusII 中对 LPM 进行例化

• 1 、在 VerilogHDL 和 VHDL 中例化• 2 、使用端口和参数定义• 3 、使用端口和参数定义生成宏功能模

Page 10: 第 7 章   宏功能模块与 IP 应用

Altera 的 LPM 计数器 加法 / 减法器 乘法器 乘 - 累加器和乘 - 加法器 RAM 移位寄存器

Page 11: 第 7 章   宏功能模块与 IP 应用

7.2 宏模块应用实例

图 7-1 正弦信号发生器 结构框图

f = f0 /64

Page 12: 第 7 章   宏功能模块与 IP 应用
Page 13: 第 7 章   宏功能模块与 IP 应用

定制 LPM_ROM 初始化数据文件

• 首先确定图 7-1 中 ROM 内的波形数据文件。 QuartusII 能接受的 LPM_ROM 中的初始化数据文件的格式有 2 种: Memory Initialization File ( .mif )格式和Hexadecimal ( Intel-Format ) File ( .hex )格式。以下以 64点正弦波形数据为例分别说明。

Page 14: 第 7 章   宏功能模块与 IP 应用

1 .建立 .mif 格式文件【例 7-1 】WIDTH = 8;DEPTH = 64;ADDRESS_RADIX = HEX;DATA_RADIX = HEX;CONTENT BEGIN0 : FF;1 : FE;2 : FC;3 : F9;4 : F5;… (数据略去)3D : FC;3E : FE;3F : FF;END;

Page 15: 第 7 章   宏功能模块与 IP 应用

可以使用 C/C++ 来生成Sin 数据

【例 7-2 】#include <stdio.h>#include "math.h"main(){int i;float s;for(i=0;i<1024;i++) { s = sin(atan(1)*8*i/1024); printf("%d : %d;\n",i,(int)((s+1)*1023/2)); }}把上述程序编译成程序后,可在 DOS 命令行下执行命令:romgen > sin_rom.mif;

Page 16: 第 7 章   宏功能模块与 IP 应用
Page 17: 第 7 章   宏功能模块与 IP 应用

2 .建立 .hex 格式文件

使用 C/C++ 编程生成使用通用编程器

Page 18: 第 7 章   宏功能模块与 IP 应用

sdata.hex 文件的放置路径

Page 19: 第 7 章   宏功能模块与 IP 应用

定制 LPM_ROM 元件

定制新的宏功能块

Page 20: 第 7 章   宏功能模块与 IP 应用

LPM 宏功能块设定

Page 21: 第 7 章   宏功能模块与 IP 应用

选择 data_rom 模块数据线和地址线宽度

Page 22: 第 7 章   宏功能模块与 IP 应用

选择地址锁存信号 inclock

Page 23: 第 7 章   宏功能模块与 IP 应用

调入 ROM 初始化数据文件并选择在系统读写功能

Page 24: 第 7 章   宏功能模块与 IP 应用

LPM_ROM 设计完成

Page 25: 第 7 章   宏功能模块与 IP 应用

波形数据 ROM 文件

Page 26: 第 7 章   宏功能模块与 IP 应用
Page 27: 第 7 章   宏功能模块与 IP 应用

完成顶层设计【例 7-4 】正弦信号发生器顶层设计LIBRARY IEEE; --正弦信号发生器源文件USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SINGT IS PORT ( CLK : IN STD_LOGIC; --信号源时钟 DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );--8位波形数据输出

END;ARCHITECTURE DACC OF SINGT ISCOMPONENT data_rom --调用波形数据存储器 LPM_ROM文件:data_rom.vhd声明

PORT(address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);--6位地址信号 inclock : IN STD_LOGIC ;--地址锁存时钟 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );

END COMPONENT;

Page 28: 第 7 章   宏功能模块与 IP 应用

SIGNAL Q1 : STD_LOGIC_VECTOR (5 DOWNTO 0); -- 设定内部节点作为地址计数器 BEGINPROCESS(CLK ) --LPM_ROM 地址发生器进程 BEGINIF CLK'EVENT AND CLK = '1' THEN Q1<=Q1+1; --Q1 作为地址发生器计数器END IF;END PROCESS;u1 : data_rom PORT MAP(address=>Q1, q => DOUT,inclock=>CLK);-- 例化END;

Page 29: 第 7 章   宏功能模块与 IP 应用

仿真测试

图 7-11 仿真波形输出

图 7-12 嵌入式逻辑分析仪获得的波形

Page 30: 第 7 章   宏功能模块与 IP 应用

7.3 在系统存储器数据读写编辑器应用

In-System Memory Content Editor 编辑窗

Page 31: 第 7 章   宏功能模块与 IP 应用

与实验系统上的 FPGA 通信正常情况下的编辑窗界面

Page 32: 第 7 章   宏功能模块与 IP 应用

从 FPGA 中的 ROM 读取波形数据

Page 33: 第 7 章   宏功能模块与 IP 应用

编辑波形数据

下载编辑数据后的 SignalTap II 采样波形

Page 34: 第 7 章   宏功能模块与 IP 应用

7.4 编辑 SignalTapII 的触发信号

选择高级触发条件

Page 35: 第 7 章   宏功能模块与 IP 应用

进入“触发条件函数编辑”窗口

Page 36: 第 7 章   宏功能模块与 IP 应用

编辑触发函数

Page 37: 第 7 章   宏功能模块与 IP 应用

7.5 其它存储器模块的定制与应用

7.5.1 RAM 定制

编辑定制 RAM

Page 38: 第 7 章   宏功能模块与 IP 应用

LPM_RAM 的仿真波形

Page 39: 第 7 章   宏功能模块与 IP 应用

7.5.2 FIFO 定制

FIFO 编辑窗

Page 40: 第 7 章   宏功能模块与 IP 应用

FIFO 的仿真波形

Page 41: 第 7 章   宏功能模块与 IP 应用

7.6 流水线乘法累加器的混合输入设计( 1 )用 VHDL 设计 16 位加法器【例】 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER16B IS

PORT ( CIN : IN STD_LOGIC;

A , B : IN STD_LOGIC_VECTOR(15 DOWNTO 0);

S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);

COUT : OUT STD_LOGIC );

END ADDER16B;

ARCHITECTURE behav OF ADDER16B IS

SIGNAL SINT : STD_LOGIC_VECTOR(16 DOWNTO 0);

SIGNAL AA,BB : STD_LOGIC_VECTOR(16 DOWNTO 0);

BEGIN

AA<='0'&A; BB<='0'&B;

SINT <= AA + BB + CIN; S <= SINT(15 DOWNTO 0); COUT <= SINT(4);

END behav;

Page 42: 第 7 章   宏功能模块与 IP 应用

( 2 )顶层原理图文件设计

在原理图编辑窗加入 LPM 元件

Page 43: 第 7 章   宏功能模块与 IP 应用

编辑 LPM 乘法器

Page 44: 第 7 章   宏功能模块与 IP 应用

加入所有相关元件

Page 45: 第 7 章   宏功能模块与 IP 应用

乘法累加器电路

Page 46: 第 7 章   宏功能模块与 IP 应用

( 3 )仿真

muladd 工程仿真波形

Page 47: 第 7 章   宏功能模块与 IP 应用

7.7 LPM 嵌入式锁相环调用

7.7.1 建立嵌入式锁相环元件

选择参考时钟为 16MHz

Page 48: 第 7 章   宏功能模块与 IP 应用

选择控制信号

Page 49: 第 7 章   宏功能模块与 IP 应用

选择 c0 的片内时钟倍频为 2

Page 50: 第 7 章   宏功能模块与 IP 应用

7.7.2 测试锁相环

PLL 元件的仿真波形