宏功能模块
宏功能模块
2位十进制数字频率计设计 位十进制数字频率计设计
设计有时钟使能的两位十进制计数器 设计电路原理图。 (1) 设计电路原理图。
图 用74390设计一个有时钟使能的两位十进制计数器 设计一个有时钟使能的两位十进制计数器
(2) 计数器电路实现
调出元件74390 图 调出元件
中了解74390的详细功能 图 从Help中了解 中了解 的详细功能
图 fifo端口设置 端口设置
选择含溢出标志输出
含异步清零
图选择在读请求信号有效后数据输出
选择同步工作模式
选择优化方式 选择使用EAB设计 设计fifo 选择使用 设计
选择Area优化方式 图 选择 优化方式
图单击“ 后完成fifo2.vhd的定制 图单击“Finish”后完成 后完成 的定制
(3) 波形仿真
图 两位十进制计数器工作波形
参数可设置LPM兆功能块 兆功能块 参数可设置
基于LPM_COUNTER的数控分频器设计 的数控分频器设计 基于
图 数控分频器电路原理图
进制数: 时的工作波形 时的工作波形。 当d[3..0]=12(即16进制数:C)时的工作波形。 即 进制数
图 数控分频器工作波形
图4-45 LPM_ROM参 参 数设置窗口
图 LPM_ROM构成的乘法器仿真波形 构成的乘法器仿真波形
(2) 用初始化存储器编辑窗口编辑 文件 用初始化存储器编辑窗口编辑mif文件
窗口中编辑乘法表地址/数据 图 在Initialize Memory窗口中编辑乘法表地址 数据 窗口中编辑乘法表地址
LPM的VHDL文本方式调用 的 文本方式调用
AD采样系统顶层电路设计 采样系统顶层电路设计
图 ADC0809采样电路系统 采样电路系统
编辑LPM_FIFO设计实体 设计实体 编辑
选择LPM巨功能块编辑器 巨功能块编辑器 选择
选择建立一个巨功能块
最后按键NEXT 最后按键
图 生成或修改一个定制的巨功能块
LPM_FIFO定制文件仿真测试 定制文件仿真测试
图
仿真形
此FIFO使用了 使用了 1K30内部 个 内部16个 内部 单元的EAB 单元的
基于LPM_ROM的4位乘法器设计 的 位乘法器设计 基于
图 用LPM_ROM设计的 4位乘法器原理图 设计的 位乘法器原理图
(1) 用文本编辑器编辑 文件 用文本编辑器编辑mif文件
LPM _ROM 中作为乘法表的数据文件 rom_data.mif WIDTH = 8 ; DEPTH = 256 ; ADDRESS_RADIX = HEX ; DATA_RADIX = HEX ; CONTENT BEGIN
接上页 lpm_widthu :NATURAL; --类属 地址宽度 自然数数据类型 类属 lpm_showahead :STRING; --类属 数据读出方式 字符串数据类型 类属 lpm_hint : STRING ); --类属 优化方式 字符串数据类型 类属 PORT ( rdreq : IN STD_LOGIC ; aclr : IN STD_LOGIC ; clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); wrreq : IN STD_LOGIC ; data : IN STD_LOGIC_VECTOR (7 DOWNTO 0); full : OUT STD_LOGIC ); END COMPONENT; BEGIN q <= sub_wire0(7 DOWNTO 0); full <= sub_wire1; lpm_fifo_component : lpm_fifo GENERIC MAP ( LPM_WIDTH => 8, --类属映射语句,数据宽度 位 类属映射语句, 类属映射语句 数据宽度8位 LPM_NUMWORDS => 512, --8位字节数 位字节数512个 位字节数 个 LPM_WIDTHU => 9, --地址线位宽 位 地址线位宽9位 地址线位宽 LPM_SHOWAHEAD => "OFF", --关闭先行数据输出开关 关闭先行数据输出开关 -- 打开内部 打开内部EAB,最大速度约束等级为 ,最大速度约束等级为5 LPM_HINT => "USE_EAB=ON,MAXIMIZE_SPEED=5" ) PORT MAP (rdreq => rdreq, aclr => aclr, clock => clock, wrreq => wrreq, data => data, q => sub_wire0, full => sub_wire1 ); END SYN;
LPM_FIFO定制文件仿真测试 定制文件仿真测试
将编制好的输出文件设置成工程
打开文件
选目标器件 原文件
LPM_FIFO定制文件仿真测试 定制文件仿真测试
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY fifo2 IS PORT(data : IN STD_LOGIC_VECTOR (7 DOWNTO 0); --输入数据 输入数据 wrreq : IN STD_LOGIC ; --写入请求 写入请求 rdreq : IN STD_LOGIC ; --读出请求 读出请求 clock : IN STD_LOGIC ; --工作时钟 工作时钟 aclr : IN STD_LOGIC ; --异步清 异步清0 异步清 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); --数据输出 数据输出 full : OUT STD_LOGIC ); --溢出标志 溢出标志 END fifo2; ARCHITECTURE SYN OF fifo2 IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL sub_wire1 : STD_LOGIC ; COMPONENT lpm_fifo --调用 调用LPM_FIFO声明 调用 声明 GENERIC (lpm_width :NATURAL; --类属 数据宽度 自然数数据类型 类属 lpm_numwords :NATURAL; --类属 数据深度 自然数数据类型 类属 接下页
00:00 ; 01:00 ; 02:00 ; 03:00 ; 04:00 ; 05:00 ; 06:00 ; 07:00 ; 08:00 ; 09:00; 10:00 ; 11:01 ; 12:02 ; 13:03 ; 14:04 ; 15:05 ; 16:06 ; 17:07 ; 18:08 ; 19:09; 20:00 ; 21:02 ; 22:04 ; 23:06 ; 24:08 ; 25:10 ; 26:12 ; 27:14 ; 28:16 ; 29:18; 30:00 ; 31:03 ; 32:06 ; 33:09 ; 34:12 ; 35:15 ; 36:18 ; 37:21 ; 38:24 ; 39:27; 40:00 ; 41:04 ; 42:08 ; 43:12 ; 44:16 ; 45:20 ; 46:24 ; 47:28 ; 48:32 ; 49:36; 50:00 ; 51:05 ; 52:10 ; 53:15 ; 54:20 ; 55:25 ; 56:30 ; 57:35 ; 58:40 ; 59:45; 60:00 ; 61:06 ; 62:12 ; 63:18 ; 64:24 ; 65:30 ; 66:36 ; 67:42 ; 68:48 ; 69:54; 70:00 ; 71:07 ; 72:14 ; 73:21 ; 74:28 ; 75:35 ; 76:42 ; 77:49 ; 78:56 ; 79:63; 80:00 ; 81:08 ; 82:16 ; 83:24 ; 84:32 ; 85:40 ; 86:48 ; 87:56 ; 88:64 ; 89:72; 90:00 ; 91:09 ; 92:19 ; 93:27 ; 94:36 ; 95:45 ; 96:54 ; 97:63 ; 98:72 ; 99:81; END ;
选择功能块类型
选择巨功能表达语言为VHDL 选择巨功能表达语言为
选择建立FIFO功能块 功能块 选择建立 在选定的目录中确定生成 的功能块的文件名: 的功能块的文件名:fifo2.vhd
定制LPM_FIFO,文件名:fifo2.vhd 图 用VHDL定制 定制 ,文件名:
选择FIFO数据位宽为 ,深度为 数据位宽为8,深度为512 图 选择 数据位宽为