宏功能模块和IP应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算数运算模块库
lpm_mult
下面以参数化乘法器lpm_mult为例来说明如何在设计中使用宏功 能模块。lpm_mult的基本参数已在下表中给出。
(1)调用lpm_mult
(2)lpm_mult参数设置
输入输出位宽设置
乘法器类型设置
(3)编译仿真
8位有符号乘法器电路
功能仿真波形
逻辑门库
I/O模块库
数据线、地址线宽度设置
控制端口设置
添加.mif文件
如下图所示就是基于ROM实现的4位×4位的无符号 数乘法器电路图,其参数设置为: LPM_WIDTH=8 LPM_WIDTHAD=8 LPM_FILE=mult_rom.mif
仿真结果
二、 Maxplus2库
Maxplus2库主要由74系列数字集成电路组成,包括 时序电路宏模块和运算电路宏模块两大类,其中时序电 路宏模块包括触发器、锁存器、计数器、分频器、多路 复用器和移位寄存器,运算电路宏模块包括逻辑预算模 块、加法器、减法器、乘法器、绝对值运算器、数值比 较器、编译码器和奇偶校验器。 对于这些小规模的集成电路,在数字电路课程中有详 细的介绍,其调入方法与Megafunction库中的宏模块 相同,只是端口和参数无法设置。
计数器74161设计举例
ቤተ መጻሕፍቲ ባይዱ
模10计数器
仿真结果
三、 Primitives库
缓冲器库
引脚库
存储单元库
逻辑门库
其他模块
例1:利用lpm_counter计数器模块做一个十二进制计数器
方法一:利用画电路图,建立.bdf文件 方法二:利用vhdl语言,建立.vhd文件
例2:利用lpm_ram做一个8位、128深度的ram.
TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ;
SIGNAL present_state,next_state : m_state ;
编码为:st0=“000” ; st1=“001” ; st2=“010” ; st3=“011” ; st4=“100” ;
SIGNAL s1 : my_logic ; s1 <= 'Z' ;
SUBTYPE
子类型名 IS 基本数据类型 RANGE 约束范围;
SUBTYPE digits IS INTEGER RANGE 0 to 9 ;
1.枚举类型:
综合器将自动实现枚举类型元素的编码,一般将第一 个枚举量(最左边)编码为0,以后的依次加1。编码 用位矢量表示,位矢量的长度将取所需表达的所有枚 举元素的最小值。
I/O模块库
锁相环模块设计举例
参数化锁相环宏模块altpll以输入时钟信号作为参考信
号实现锁相,从而输出若干个同步倍频或者分频的片内 时钟信号。与直接来自片外的时钟相比,片内时钟可以 减少时钟延迟,减小片外干扰,还可改善时钟的建立时 间和保持时间,是系统稳定工作的保证。不同系列的芯
片对锁相环的支持程度不同,但是基本的参数设置大致
相同,下面便举例说明altpll的应用。
(1)输入altpll宏功能模块
选择芯片和设置参考时钟
锁相环控制信号设置
输入时钟设置
(2)编译和仿真
锁相环电路
功能仿真波形
存储模块库
存储器模块设计举例
ROM(Read Only Memory,只读存储器)是存储器的 一种,利用FPGA可以实现ROM的功能,但其不是真正意义 上的ROM,因为FPGA器件在掉电后,其内部的所有信息都 会丢失,再次工作时需要重新配置。 Quartus II提供的参数化ROM是lpm_rom,下面用一 个乘法器的例子来说明它的使用方法,这个例子使用 lpm_rom构成一个4位×4位的无符号数乘法器,利用查表 方法完成乘法功能。
st5=“101”
2.整数类型:
用户定义的整数类型是标准包中整数类型的子范围。
格式:type 类型名称 is interger 整数范围; 例:type my_integer is integer range 0 to 9;
3.数组类型:
数组:同类型元素的集合。VHDL支持多维数组。
多维数组的声明: type byte is array(7 downto 0) of bit; type vector is array(3 downto 0) of byte;
EDA技术实用教程
宏功能模块与 IP应用
宏功能模块设计
一、 Megafunctions库 二、 Maxplus2库 三、 Primitives库
一、Megafunctions库
Megafunction库是Altera提供的参数 化模块库。从功能上看,可以把 Megafunction库中的元器件分为: 算术运算模块(arithmetic) 逻辑门模块(gates) 储存模块(storage) IO模块(I/O)
状态符号化: TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ;
SIGNAL present_state,next_state : m_state ; TYPE BOOLEAN IS (FALSE,TRUE) ;
TYPE my_logic IS
( '1' ,'Z' ,'U' ,'0' ) ;
例3:设置一个数字钟. 要求:具有24小时计数功能,可以设置小时和分钟的 值,并具有整点报时和报警功能。
数据类型定义语句
TYPE语句的用法如下: TYPE 或 TYPE 数据类型名 IS 数据类型定义 ; 两种不同的定义方式: TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ; TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; 数据类型名 IS 数据类型定义 OF 基本数据类型 ;
数组属性:
语法如下: 对象‘属性 VHDL为数组预先定义的属性:
left
high length
right
low range
reverse_range
例:variable my_vector:bit_vector(5 downto -5); 各属性如下:
相关文档
最新文档