7宏功能模块应用


BEGIN cout <= sub_wire0; q <= sub_wire1(3 DOWNTO 0); LPM_COUNTER_component : LPM_COUNTER GENERIC MAP ( lpm_direction => "UNUSED", lpm_port_updown => "PORT_USED", lpm_type => "LPM_COUNTER", lpm_width => 4 ) PORT MAP ( aclr => aclr, clk_en => clk_en, clock => clock, data => data, sload => sload, updown => updown, cout => sub_wire0, q => sub_wire1 ); END SYN;
: STD_LOGIC ; : STD_LOGIC_VECTOR (3 DOWNTO 0);
: : : :
STRING; STRING; STRING; NATURAL
: : : : : : : :
IN STD_LOGIC ; IN STD_LOGIC ; IN STD_LOGIC ; IN STD_LOGIC_VECTOR (3 DOWNTO 0); OUT STD_LOGIC ; OUT STD_LOGIC_VECTOR (3 DOWNTO 0); IN STD_LOGIC ; IN STD_LOGIC
7.3 LPM随机存储的设置和调用
7.3.1 存储器初始化文件
1. .mif格式文件
#include <stdio.h> #include <math.h> #define PI 3.141592 #define DEPTH 128 /*数据深度,即存储单元的个数*/ #define WIDTH 8 /*存储单元的宽度*/ int main(void) { int i,temp; float s; FILE *fp; fp = fopen("TestMif.mif","w"); /*文件名随意,但扩展名必须为.mif*/ if(NULL==fp) printf("Can not creat file!\r\n"); else { printf("File created successfully!\n"); /* * 生成文件头:注意不要忘了“;” */ fprintf(fp,"DEPTH = %d;\n",DEPTH); fprintf(fp,"WIDTH = %d;\n",WIDTH); fprintf(fp,"ADDRESS_RADIX = HEX;\n"); fprintf(fp,"DATA_RADIX = HEX;\n"); fprintf(fp,"CONTENT\n"); fprintf(fp,"BEGIN\n");
3. 枚举类型定义 TYPE 枚举类型名 IS (元素1,元素2,......); 【例】 TYPE boolean IS ( false ,true ); TYPE my_logic IS ( ‘1’,‘z’,‘u’ ,‘0’ ); TYPE m_state IS (state1, state2, state3, state4, state5 ); TYPE x IS (low ,high ); TYPE data_bus IS ARRAY (0 TO 7,x) OF bit ; 综合时默认编码值: 000 001 010 011 100
【例】 TYPE matrix IS ARRAY (127 DOWNTO 0) OF std_logic_vector(7 DOWNTO 0);
定义一个128×8的二维数组类型matrix;每个元素的数据类型都是 std_logic_vector类型。利用这种数组可以定义一个存储器。
2. 非限定性数组类型定义 TYPE 数组类型名 IS ARRAY ( natural RANE<> ) OF
BEGIN PROCESS( clk ) BEGIN IF rising_edge(clk) THEN IF wren = ‘1’ THEN --同步写 mem(conv_integer(a)) <= din; END IF; END IF;
IF falling_edge(clk) THEN --同步读 q<=mem(conv_integer(a)); END IF; END PROCESS; END bhv; 对存储器的读写操作分别发生在clk信号的下降沿和上升沿,需要注意 的是这里的同步读写是对两个不同的信号进行的。
EDA技术 第7章 宏功能模块应用
7.1 计数器LPM模块调用
7.1.1 计数器模块文本的调用与参数设置
LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY lpm; USE lpm.all; ENTITY cnt IS PORT (
aclr clk_en clock data sload updown cout q
7.3 LPM随机存储器的设置和调用
7.3.5 数据类型定义语句
1. 限定性数组类型定义 TYPE 数组类型名 IS ARRAY ( 数组范围 ) OF
【例】
基本数据类型;
TYPE stb IS ARRAY (7 DOWNTO 0) OF std_logic; 定义一个数组类型stb;有8个元素,分别为 stb(7),stb(6),stb(5)„stb(0);每个元素的数据类型都是std_logic类 型。
4. 枚举子类型定义 SUBTYPE 枚举子类型名 IS 基本数据类型 RANGE 约束范围; 【例】 SUBTYPE natural IS integer RANGE 0 TO integer'high; SUBTYPE positive IS integer RANGE 1 TO integer'high; SUBTYPE digits IS integer RANGE 0 TO 9;
7.3 LPM随机存储器的设置和调用
7.3.6 存储器配置文件属性定义和结构设置
【例7-7】 „ ARCHITECTURE bhv OF ram78 IS TYPE g_array IS ARRAY(0 TO 127) OF std_logic_vector(7 DOWNTO 0); SIGNAL mem : g_array; ATTRIBUTE ram_init_file : string ; ATTRIBUTE ram_init_file OF mem : SIGNAL IS “data7x8.mif”; BEGIN „
/* * 以十六进制输出地址和数据
*/
for(i=0;i<DEPTH;i++) { /*周期为128个点的正弦波*/ s = sin(PI*i/64); /*将-1~1之间的正弦波的值扩展到0-255之间*/ temp = (int)((s+1)*255/2); /*以十六进制输出地址和数据*/ fprintf(fp,"%x\t:\t%x;\n",i,temp); }//end for fprintf(fp,"END;\n"); fclose(fp); } }
7.3 LPM随机存储器的设置和调用
7.3.4 VHDL的存储器描述及相关属性
【例7-6】 „ USE ieee.std_logic.arith.all; --包含conv_integer(a) USE ieee.std_logic_unsigned.all; --包含算术重载函数 ENTITY ram78 IS PORT ( clk,wren: IN std_logic; --时钟,写允许信号 a: IN std_logic_vector(6 DOWNTO 0 ); --7位地址信号 din: IN std_logic_vector(7 DOWNTO 0); --8位数据输入信号 q: OUT std_logic_vector(7 DOWNTO 0) --8位数据输出信号 ); END; ARCHITECTURE bhv OF ram78 IS TYPE g_array IS ARRAY(0 TO 127) OF std_logic_vector(7 DOWNTO 0); SIGNAL mem : g_array;
);
END cnt;
ARCHITECTURE SYN OF cnt IS SIGNAL sub_wire0 SIGNAL sub_wire1 COMPONENT lpm_counter GENERIC ( lpm_direction lpm_port_updown lpm_type lpm_width ); PORT ( aclr clk_en clock data cout q sload updown ); END COMPONENT;
: : : : : : : :
IN STD_LOGIC ; IN STD_LOGIC ; IN STD_LOGIC ; IN STD_LOGIC_VECTOR (3 DOWNTO 0); IN STD_LOGIC ; IN STD_LOGIC ; OUT STD_LOGIC ; OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
【例】
基本数据类型;
TYPE bit_vector IS ARRAY ( natural RANE<> ) OF bit; VARABLE va: bit_vector (1 TO 6); 这是在std库的standard程序包中bit_vector类型的定义。 使用非限定性数组类型定义一个数据对象时,要给出数组下标的取值 范围。
合集下载

实验2参数可设置宏功能模块lpm的应用

实验2参数可设置宏功能模块lpm的应用

功能描述
浮点加法器、减法器模块 浮点参数化除法器宏模块 浮点参数化乘法器宏模块 参数化存储乘法器宏模块 参数化乘累加器宏模块 参数化乘加器宏模块 参数化整数平方根运算宏模块 参数化除法器宏模块 参数化绝对值运算宏模块(Altera推荐使用)
10 lpm_add_sub
11 lpm_compare 12 lpm_counter 13 lpm_divide
参数化加法器-减法器宏模块(Altera推荐使 用)
参数化比较器宏模块(Altera推荐使用) 参数化计数器宏模块(Altera推荐使用) 参数化除法器宏模块(Altera推荐使用)
第四页,编辑于星期三:十二点 三十分。
一、参数可设置模块库(续3)
门电路
序号 模块名称
功能描述
1 lpm_and/or/xor 参数化与门模块/或门/异或门模块
地址低4位,十 六进制表示9
地址高4位,十 六进制表示9
存储数据 9 ×9=81
保存,文件名romdata.hex
第十三页,编辑于星期三:十二点 三十分。
二、利用lpm-rom设计一个乘法器
定制lpm_rom元件 Tools→MegaWizard Plug-In Manager
第十四页,编辑于星期三:十二点 三十分。
第七页,编辑于星期三:十二点 三十分。
一、参数可设置模块库(续6)
2、调用宏功能模块的方法
新建原理图编辑文件,双击 打开Symbol对话框调用
也可通过菜单Tools→MegaWizard Plug-In Manager
第八页,编辑于星期三:十二点 三十分。
二、利用lpm-rom设计一个乘法器
1、ROM工作原理
二、利用lpm-rom设计一个乘法器

总结使用宏功能模块进行设计的优缺点

总结使用宏功能模块进行设计的优缺点

总结使用宏功能模块进行设计的优缺点
问题:总结使用宏功能模块进行设计的优缺点,其中需要注意什么?回答:
使用宏功能模块进行设计的优点是易于修改,但必须按照预先规定好的方式组织程序,以便检查每一个子模块、过程或函数是否都正确地实现了预期功能。

也可把代码中相似的部分放在同一个模块中。

宏代码还有很多有利之处,如利于对各种软件工具产生的变化作出反应;可简化编译程序及运行时的调试工作等。

但是宏又不象子模块那样灵活方便,因此它主要适合编写过程比较固定而内容经常变更的程序。

编写和调试比较麻烦。

可把宏定义成一些简单的命令语句,让用户自己写出程序,然后再根据用户的使用情况提供各种选择和帮助。

宏和变量一起构成了一种通用性强的机制。

宏变量类似于一般变量,所以使用时直接在宏变量名前面加上“*”符号即可。

当宏被赋值时就返回该变量,而且返回值类型由用户指定,因此非常灵活。

例如,如果用户把变量取名为 PrintGrid (a,10,5),那么宏 A= printGrid (10,5);宏 B= printGrid (10,5);宏 C= printGrid (10,5);宏 D= printGrid (10,5);宏 E= printGrid (10,5);宏 F= printGrid (10,5);宏 G= printGrid (10,5);宏 H= printGrid (10,5);宏 I= printGrid (10,5);等等,宏变量之间完全可以用空格隔开,也没有标志符的区别。

宏与变量一样,用户既可以把宏定义成一个独立的变量,又可以把宏看做变量的另外一种形式。

这里我们用了两种形式的宏。

精品课件-硬件描述语言与FPGA设计技术(肖闽进)-第6章 宏功能模块与IP应用

精品课件-硬件描述语言与FPGA设计技术(肖闽进)-第6章 宏功能模块与IP应用

f sin_o[9..0] f cos_o[9..0]
out_v alid
inst
OUTPUT OUTPUT
FS[9..0] FC[9..0]
嵌入式逻辑分析仪测试波形
6.6 LPM嵌入式锁相环设计
Altera 的FPGA器件CycloneII/III/IV及 StraixII/III/IV等系列中含有高性能的嵌入式模拟锁相 环,其性能远优于普通数字锁相环。这些锁相环PLL可以 与一输入的时钟信号同步,并以其作为参考信号实现锁 相,从而输出一至多个同步倍频或分频的片内时钟,以 供逻辑系统应用。与直接来自外部的时钟相比,这种片 内时钟可以减少时钟延时和时钟变形,减少片外干扰; 还可以改善时钟的建立时间和保持时间,是系统稳定工 作的保证。
aclr
8 bits 128 words
OUTPUT
CLKOUT
OUTPUT OUTPUT
ADDR[6..0] Q[7..0]
sin2_rom
address[6..0]
q[7..0]
inclock
inst2 Block ty pe: AUTO
OUTPUT
COUT
6.6.2锁相环仿真测试和硬件特性 锁相环仿真波形
加入NCO授权文件和Quartus II授权文件。这里设授权文 件位置路径:C:\altera\90\license.DAT。有了授权文 件,在Option对话框的Licensed AMPP/MegaCore functions 栏中可以看到FIR、PCI、NCO等IP的授权码, 这样就可以编译出能够写Flash的SOF文件。也可以先转 变为间接配置编程文件写入EPCS Flash。
6.1 LPM存储器设计 6.1.1 ROM模块设计

【Verilog】第7章 宏功能模块与IP应用

【Verilog】第7章 宏功能模块与IP应用

7.10 使用IP Core设计FIR滤波器
7.10 使用IP Core设计FIR滤波器
7.11 8051单片 机IP核应 用
7.11 8051单片机IP核应用
7.11 8051单片机IP核应用
7.12 DDS实现原理与应用
7.12.1 DDS实现原理
7.12 DDS实现原理与应用
7.12.1 DDS实现原理
实验与设计
7-7 4X4阵列键盘键信号检测电路设计
(1)实验原理:
实验与设计
7-7 4X4阵列键盘键信号检测电路设计
(2)实验任务1: (3)实验任务2:
(4)实验任务3: (5)实验任务4: (6)实验任务5: (7)实验任务6: 5E+系统演示示例:/KX_7C5EE+/EXPERIMENTs/EXP31_SCAN_4X4KEY/。
接下页
接上页
7.4.4 Verilog的存储器描述及相关属性
4.文本方式调用存储器LPM模块
7.5 LPM_ROM的定制和使用示例
7.5.1 LPM_ROM的定制调用和测试
7.5 LPM_ROM的定制和使用示例
7.5.1 LPM_ROM的定制调用和测试
7.5 LPM_ROM的定制和使用示例
7.5.1 LPM_ROM的定制调用和测试
7.4 LPM 随机存储器的设置和调用
7.4.1 存储器初始化文件生成 2.建立.hex格式文件
7.4 LPM 随机存储器的设置和调用
7.4.2 LPM_RAM的设置和调用
7.4 LPM 随机存储器的设置和调用
7.4.2 LPM_RAM的设置和调用
7.4 LPM 随机存储器的设置和调用
7.4.2 LPM_RAM的设置和调用

第7章VHDL宏功能模块与IP核的应用

第7章VHDL宏功能模块与IP核的应用

END;
ARCHITECTURE DACC OF SINGT IS COMPONENT data_rom --调用波形数据存储器LPM_ROM文件:data_rom.vhd声明
PORT(address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);--6位地址信号 inclock : IN STD_LOGIC ;--地址锁存时钟
7.0 宏功能模块概述
宏功能模块LPM:是参数可设置模块库的英语缩写 (Library of Parameterized Modules),这些可 以以图形或硬件描述语言模块形式方便调用的宏 功能块,使得基于EDA技术的电子设计的效率和 可靠性有了很大的提高。设计者可以根据实际电 路的设计需要,选择LPM库中的适当模块,并为 其设定适当的参数,就能满足自己设计需要,从 而在自己的项目中十分方便地调用优秀的电子工 程师人员的硬件设计成果。
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位波形数据输出
black-box申明,用于在使用EDA 综合工具时指定端口方向。 • <输出文件>_inst.tdf : 宏功能模块包装文件中子设计的AHDL例化示例。 • <输出文件>_inst.vhd : 宏功能模块包装文件中实体的VHDL例化示例。 • <输出文件>_inst.v : 宏功能模块包装文件中模块的VerilogHDL例化示例。

第6讲-LPM参数化宏模块应用07

第6讲-LPM参数化宏模块应用07
24
7.3 在系统存储器数据读写编辑器应用
图7-15 从FPGA中的ROM读取波形数据
25
7.3 在系统存储器数据读写编辑器应用
图7-16 编辑波形数据
图7-16下载编辑数据后的SignalTap II采样波形
26
7.4 编辑SignalTapII的触发信号
图7-17 选择高级触发条件
27
7.4 编辑SignalTapII的触发信号
2.建立.hex格式文件---直接填表
图7-2 将波形数据填入mif文件表中
10
7.2.2 定制LPM_ROM初始化数据文件
2.建立.hex格式文件 ---汇编程序编译器
图7-3 ASM格式建hex文件
11
7.2 LPM模块应用实例
7.2.2 定制LPM_ROM初始化数据文件
2.建立.hex格式文件
END;
8
7.2 LPM模块应用实例
7.2.2 定制LPM_ROM初始化数据文件
1.建立.mif格式文件 ---程序语言生成,如 C
【例7-2】 #include <stdio.h> #include "math.h" main() {int i;float s; for(i=0;i<1024;i++)
31
7.5 其它存储器模块的定制与应用
7.5.2 FIFO定制
图7-22 FIFO编辑窗
32
7.5 其它存储器模块的定制与应用
7.5.2 FIFO定制
图7-23 FIFO的仿真波形
33
7.5 其它存储器模块的定制与应用
7.5.3 基于LPM_ROM的4位乘法器设计
address_aclr_a => "NONE",

宏功能模块与IP应用

宏功能模块与IP应用6.1宏功能模块概述这里主要介绍LPM宏功能模块,它就是Library of Parameterized Modules(参数可设置模块库)的缩写,Altera提供的可参数化功能模块和LPM函数均基于altera器件的结构作了优化设计。

我认为就是已经设计好的最佳的基本电路模块。

在特定器件结构中发挥出最佳性能。

可以使用这些知识产权的参数化模块减少设计和测试的时间。

这些宏功能模块应用于通信,数字信号处理(DSP),PCI和其他总线界面,以及存储器中的宏功能模块。

6.2 LPM计数器模块的使用方法在原有的LPM库中将参数进行设置,最后如下图1图1Quartus II生成的计数器文件CNT4B.vhd如下图Lpm_counter是元件名,是可以从lpm库中调用的宏功能模块元件名;而lpm_counter_component则是在此文件中为使用和调用lpm_counter取的例化名,即参数传递语句中的宏功能模块元件的例化名。

6.3 基于LPM的流水线乘法累加器设计LPM加法器模块设计LMP乘法器模块设置调用6.4 LPM随机存储器的设置和调用在涉及RAM和ROM等存储器应用的EDA设计开发中,调用LPM模块类存储器是最方便,最经济,最高效和性能最容易满足设计要求的途径。

Quartus能接受两种格式的文件:MIF和HEX。

建立米饭格式的文件然后就是数据类型的定义语句!如整数类型INTEGER,布尔型boolean,标准逻辑类型std_logic等,此外VHDL还允许用户自行定义新的数据类型。

6.5 LPM_ROM的定制和使用方法6.6 在系统存储器数据读写编辑器应用对于Cyclone系列的FPGA,只要对使用的LPM_ROM或LPM_RAM等存储器模块作适当设置,就能利用Quartus的在系统存储器读写编辑器直接通过JTAG口读取或改写FPGA内处于工作状态的存储器中的数据,读取过程不影响FPGA的正常工作。

eda技术实用教程-veriloghdl答案

eda技术实用教程-veriloghdl答案【篇一:eda技术与vhdl程序开发基础教程课后答案】eda的英文全称是electronic design automation2.eda系统设计自动化eda阶段三个发展阶段3. eda技术的应用可概括为4.目前比较流行的主流厂家的eda软件有、5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有7.逻辑综合后生成的网表文件为 edif8.布局布线主要完成9.10.常用的第三方eda工具软件有synplify/synplify pro、leonardo spectrum1.8.2选择1.eda技术发展历程的正确描述为(a)a cad-cae-edab eda-cad-caec eda-cae-cadd cae-cad-eda2.altera的第四代eda集成开发环境为(c)a modelsimb mux+plus iic quartus iid ise3.下列eda工具中,支持状态图输入方式的是(b)a quartus iib isec ispdesignexpertd syplify pro4.下列几种仿真中考虑了物理模型参数的仿真是(a)a 时序仿真b 功能仿真c 行为仿真d 逻辑仿真5.下列描述eda工程设计流程正确的是(c)a输入-综合-布线-下载-仿真b布线-仿真-下载-输入-综合c输入-综合-布线-仿真-下载d输入-仿真-综合-布线-下载6.下列编程语言中不属于硬件描述语言的是(d)a vhdlb verilogc abeld php1.8.3问答1.结合本章学习的知识,简述什么是eda技术?谈谈自己对eda技术的认识?答:eda(electronic design automation)工程是现代电子信息工程领域中一门发展迅速的新技术。

2.简要介绍eda技术的发展历程?答:现代eda技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。

第六章_宏功能模块与IP应用


复习
P195~209
预习
第二次实验: 第二次实验:p120_4.5.2 2位十进制数字频率计 位十进制数字频率计 第三次实验: 第三次实验: 必做: 十六进制7段数码显示译码器设计 段数码显示译码器设计( 必做:p140_4-4 十六进制 段数码显示译码器设计(参 考本教材二版p143【例5-21】) 考本教材二版 【 】 选做: 数码扫描显示电路设计( 选做:p141_4-6 数码扫描显示电路设计(参考本教材 二版p144【例5-22】) 二版 【 】 第四次实验: 并行ADC采样控制电路实现和 第四次实验:p264_7-2 并行 采样控制电路实现和 硬件验证 第五/六次实验 设计型实验(自己选题) 六次实验: 第五 六次实验:设计型实验(自己选题)
一、正弦信号发生器结构
由FPGA实现 实现 RST EN CLK Q1 address Inclock q Q
四 个 组 成 部 分
1、7位地址信号发生器 、 位地址信号发生器 2、正弦信号数据存储器 、正弦信号数据存储器ROM 3、VHDL顶层文件 顶层文件SIN_GNT 、 顶层文件 4、8位D/A 、 位
LPM功能模块内容丰富,设计者可根据实际需要,选 功能模块内容丰富,设计者可根据实际需要, 功能模块内容丰富 择LPM库中的适当模块,并为其设定适当的参数,满足自 库中的适当模块,并为其设定适当的参数, 库中的适当模块 己的设计需求。 己的设计需求。
6.5.3 简易正弦信号发生器设计 简易正弦信号发生器设计
三、正弦信号数据存储器ROM的定制 正弦信号数据存储器ROM的定制 ROM
4. 按图示作选择
三、正弦信号数据存储器ROM的定制 正弦信号数据存储器ROM的定制 ROM
5. 按图示作选择

第7章 LPM宏模块的应用


E D A 技 术 与 应 用
通过Quartus II设置DSP模块构建:Assignments→Setting,在 左栏选择Analysis&Synthesis Settings项,在对话框中按More Settings按钮,在弹出的对话框中选择DSP Block Balancing项 的DSP blocks。
(2)文件直接编辑法:
使用Quartus II以外的编辑器设计.mif文件
E D A 技 术 与 应 用
例7-5:编辑器设计.mif文件
DEPTH=128; :数据深度,即存储的数据个数 WIDTH=8; :输出数据宽度 ADDRESS_RADIX=HEX;:地址数据类型,HEX表示选择十六进制 数据类型 DATA_RADIX=HEX;:存储数据类型,HEX表示选择十六进制数据 类型 CONTENT :此为关键词 BEGIN :此为关键词 0000 : 0080; 0001 : 0086; 0002 : 008C; …(数据略去) 007E : 0073; 007F : 0079; END;
1. .mif格式文件
E D A 技 术 mif数据表格中键入数据。 表格中的数据格式可通过右击 窗口边缘的地址数据所弹出的 窗口中选择。
表中任一数据对应的地址为左 列数与顶行数之和。
完成数据输入后,选择 File→Save As,保存此数据文 件,如取名为data7X8.mif。
E D A 技 术 与 应 用
例化语句中,未设定的端口必须接上特定的电平。
计数器模块lpm_counter是一个可设定参数的封闭模块,只 能通过参数传递说明语句defparam将用户设定的参数通过 文件CNT4B.v传递进lpm_counter中。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档