第4 章 基于宏功能模块的设计第4 章 基于宏功能模块的设计 u 乘法器模块乘法器模块 u 计数器模块计数器模块 u 锁相环模块锁相环模块 u 存储器模块存储器模块 u 其他模块其他模块 内容内容内容内容 第4 章 基于宏功能模块的设计第4 章 基于宏功能模块的设计 4 . 1 乘法器模块4 . 1 乘法器模块 Megafunction库是库是Altera提供的参数化 模块库从功能上看,可以把 提供的参数化 模块库从功能上看,可以把 Megafunction库中的元器件分为:库中的元器件分为: u 算术运算模块(算术运算模块(arithmetic)) u 逻辑门模块(逻辑门模块(gates)) u 储存模块(储存模块(storage)) u IO模块(模块(I/O)) 算数运算模块库算数运算模块库 参数化乘法器参数化乘法器lpm_mult宏功能模块的基本参数表宏功能模块的基本参数表 lpm_mult ((1)调用)调用lpm_mult ((2))lpm_mult参数设置参数设置 输入输出位宽设置乘法器类型设置输入输出位宽设置乘法器类型设置 ((3)编译仿真)编译仿真 8位有符号乘法器电路 功能仿真波形 位有符号乘法器电路 功能仿真波形 4.3 计数器模块计数器模块 计数器输出端口宽度和计数方向设置计数器输出端口宽度和计数方向设置 计数器模和控制端口设置计数器模和控制端口设置 更多控制端口设置更多控制端口设置 模模24方向可控计数器电路方向可控计数器电路 lpm_counter计数器功能仿真波形计数器功能仿真波形 参数化锁相环宏模块参数化锁相环宏模块altpll以输入时钟信号作为参考信 号实现锁相,从而输出若干个同步倍频或者分频的片内 时钟信号。
与直接来自片外的时钟相比,片内时钟可以 减少时钟延迟,减小片外干扰,还可改善时钟的建立时 间和保持时间,是系统稳定工作的保证不同系列的芯 片对锁相环的支持程度不同,但是基本的参数设置大致 相同,下面便举例说明 以输入时钟信号作为参考信 号实现锁相,从而输出若干个同步倍频或者分频的片内 时钟信号与直接来自片外的时钟相比,片内时钟可以 减少时钟延迟,减小片外干扰,还可改善时钟的建立时 间和保持时间,是系统稳定工作的保证不同系列的芯 片对锁相环的支持程度不同,但是基本的参数设置大致 相同,下面便举例说明altpll的应用 4 . 5 锁相环模块4 . 5 锁相环模块 ((1)输入)输入altpll宏功能模块宏功能模块 选择芯片和设置参考时钟选择芯片和设置参考时钟 锁相环控制信号设置锁相环控制信号设置 输入时钟设置输入时钟设置 ((2)编译和仿真)编译和仿真 锁相环电路锁相环电路 功能仿真波形功能仿真波形 ROM((Read Only Memory,只读存储器)是存储器的 一种,利用 ,只读存储器)是存储器的 一种,利用FPGA可以实现可以实现ROM的功能,但其不是真正意义 上的 的功能,但其不是真正意义 上的ROM,因为,因为FPGA器件在掉电后,其内部的所有信息都 会丢失,再次工作时需要重新配置。
器件在掉电后,其内部的所有信息都 会丢失,再次工作时需要重新配置 Quartus II提供的参数化提供的参数化ROM是是lpm_rom,下面用一 个乘法器的例子来说明它的使用方法,这个例子使用 ,下面用一 个乘法器的例子来说明它的使用方法,这个例子使用 lpm_rom构成一个构成一个4位×位×4位的无符号数乘法器,利用查表 方法完成乘法功能 位的无符号数乘法器,利用查表 方法完成乘法功能 4 . 6 存储器模块4 . 6 存储器模块 数据线、地址线宽度设置数据线、地址线宽度设置 控制端口设置控制端口设置 添加添加.mif文件文件 如下图所示就是基于如下图所示就是基于ROM实现的实现的4位×位×4位的无符号 数乘法器电路图,其参数设置为: 位的无符号 数乘法器电路图,其参数设置为: LPM_WIDTH=8 LPM_WIDTHAD=8 LPM_FILE=mult_rom.mif 仿真结果仿真结果 4 . 7 其他模块4 . 7 其他模块 Maxplus2库主要由库主要由74系列数字集成电路组成,包括 时序电路宏模块和运算电路宏模块两大类,其中时序电 路宏模块包括触发器、锁存器、计数器、分频器、多路 复用器和移位寄存器,运算电路宏模块包括逻辑预算模 块、加法器、减法器、乘法器、绝对值运算器、数值比 较器、编译码器和奇偶校验器。
对于这些小规模的集成电路,在数字电路课程中有详细 的介绍他们的调入方法和 系列数字集成电路组成,包括 时序电路宏模块和运算电路宏模块两大类,其中时序电 路宏模块包括触发器、锁存器、计数器、分频器、多路 复用器和移位寄存器,运算电路宏模块包括逻辑预算模 块、加法器、减法器、乘法器、绝对值运算器、数值比 较器、编译码器和奇偶校验器 对于这些小规模的集成电路,在数字电路课程中有详细 的介绍他们的调入方法和Megafunction库中的宏模 块是一样的,只是端口和参数无法设置 库中的宏模 块是一样的,只是端口和参数无法设置 计数器计数器74161设计举例设计举例 模模10计数器计数器 仿真结果仿真结果 模模10计数器仿真波形计数器仿真波形 4.1 采用采用Quartus II软件的宏功能模块软件的宏功能模块lpm_counter设计一 个模为 设计一 个模为60的加法计数器,进行编译和仿真,查看仿真结果的加法计数器,进行编译和仿真,查看仿真结果 4.2 采用采用Quartus II软件的宏功能模块软件的宏功能模块lpm_rom,用查表 的方式设计一个实现两个 ,用查表 的方式设计一个实现两个8位无符号数加法的电路,并进行 编译和仿真。
位无符号数加法的电路,并进行 编译和仿真 4.3 先利用先利用LPM_ROM设计设计4位×位×4位和位和8位×位×8位乘法器各一 个,然后用 位乘法器各一 个,然后用Verilog语言分别设计语言分别设计4位×位×4位和位和8位×位×8位乘法 器,比较两类乘法器的运行速度和资源耗用情况 位乘法 器,比较两类乘法器的运行速度和资源耗用情况 4.4 用数字锁相环实现分频,假定输入时钟频率为用数字锁相环实现分频,假定输入时钟频率为10MHz, 想要得到 , 想要得到6MHz的时钟信号,试用的时钟信号,试用altpll宏功能模块实现该电 路 宏功能模块实现该电 路 习 题习 题 。