《基于宏功能模块的设计.ppt》由会员分享,可在线阅读,更多相关《基于宏功能模块的设计.ppt(37页珍藏版)》请在金锄头文库上搜索。
1、3.4 基于宏功能模块的设计 Megafunction库是Altera提供的参数化模块库。从功能上看,可以把Megafunction库中的元器件分为:u算术运算模块(arithmetic)u逻辑门模块(gates)u储存模块(storage)uIO模块(I/O)3.4.1 乘法器模块乘法器模块算数运算模块库 参数化乘法器参数化乘法器lpm_mult宏功能模块的基本参数表宏功能模块的基本参数表lpm_mult(1)调用)调用lpm_mult(2)lpm_mult参数设置参数设置输入输出位宽设置输入输出位宽设置乘法器类型设置乘法器类型设置(3)编译仿真)编译仿真8位有符号乘法器电路位有符号乘法器电
2、路功能仿真波形功能仿真波形3.4.3 计数器模块计数器模块计数器输出端口宽度和计数方向设置计数器输出端口宽度和计数方向设置 计数器模和控制端口设置计数器模和控制端口设置 更多控制端口设置更多控制端口设置模模24方向可控计数器电路方向可控计数器电路lpm_counter计数器功能仿真波形计数器功能仿真波形 参数化锁相环宏模块altpll以输入时钟信号作为参考信号实现锁相,从而输出若干个同步倍频或者分频的片内时钟信号。与直接来自片外的时钟相比,片内时钟可以减少时钟延迟,减小片外干扰,还可改善时钟的建立时间和保持时间,是系统稳定工作的保证。不同系列的芯片对锁相环的支持程度不同,但是基本的参数设置大致
3、相同,下面便举例说明altpll的应用。3.4.5 锁相环模块锁相环模块(1)输入)输入altpll宏功能模块宏功能模块选择芯片和设置参考时钟选择芯片和设置参考时钟 锁相环控制信号设置锁相环控制信号设置 输入时钟设置输入时钟设置 (2)编译和仿真)编译和仿真锁相环电路锁相环电路功能仿真波形功能仿真波形 ROM(Read Only Memory,只读存储器)是存储器的一种,利用FPGA可以实现ROM的功能,但其不是真正意义上的ROM,因为FPGA器件在掉电后,其内部的所有信息都会丢失,再次工作时需要重新配置。 Quartus II提供的参数化ROM是lpm_rom,下面用一个乘法器的例子来说明它
4、的使用方法,这个例子使用lpm_rom构成一个4位4位的无符号数乘法器,利用查表方法完成乘法功能。3.4.6 存储器模块存储器模块数据线、地址线宽度设置数据线、地址线宽度设置 控制端口设置控制端口设置 添加添加.mif文件文件 如下图所示是基于ROM实现的4位4位的无符号数乘法器电路图,其参数设置为:LPM_WIDTH=8LPM_WIDTHAD=8LPM_FILE=mult_rom.mif仿真结果仿真结果3.4.7 其他模块其他模块 Maxplus2库主要由74系列数字集成电路组成,包括时序电路宏模块和运算电路宏模块两大类,其中时序电路宏模块包括触发器、锁存器、计数器、分频器、多路复用器和移位
5、寄存器,运算电路宏模块包括逻辑预算模块、加法器、减法器、乘法器、绝对值运算器、数值比较器、编译码器和奇偶校验器。对于这些小规模的集成电路,在数字电路课程中有详细的介绍。他们的调入方法和Megafunction库中的宏模块是一样的,只是端口和参数无法设置。 计数器计数器74161设计举例设计举例 模模10计数器计数器仿真结果仿真结果模模10计数器仿真波形计数器仿真波形设计举例: 基于LPM宏单元库的设计l任务 设计模24加法计数器l思路 配置lpm_counter宏模块1 LPM宏单元库Library of Parameterized ModulesLPM宏单元库或门lpm_or异或门lpm_x
6、or多路选择器mux总线选择器busmux多路选择器lpm_mux反相器lpm_inv解码器lpm_decode常数产生器lpm_constant组合逻辑移位器lpm_clshift三态缓冲器lpm_bustri与门lpm_and门单元gatesLPM宏单元库乘法器lpm_multIO单元数字锁相环pll除法器lpm_divide计数器lpm_counter比较器lpm_compare加/减运算器lpm_add_sub绝对值运算器lpm_abs算术运算单元arithmeticLPM宏单元库双口RAMcsdpram先入先出队列csfifo移位寄存器lpm_shiftregROMlpm_rom输入/输出复用RAMlpm_ram_io输入/输出分开RAMlpm_ram_dq锁存器lpm_latchD触发器lpm_ff存储单元storageLpm_mult模块设置Lpm_mult模块2 LPM设计举例(1)输入lpm_counter宏模块(2)设置lpm_counter宏模块l 使用端口 异步清零aclr、时钟输入clock 数据输出q、进位输出coutl 设定参数 LPM_MODULUS = 24 LPM_WIDTH = 5 LPM_DIRECTION = “UP”设置Lpm_counter端口设置Lpm_counter参数模24加法计数器(3)编译和仿真