2021-03-26 基于LPM_ROM的4位乘4位无符号数乘法器

本文档详细介绍了如何使用Quartus 9.0和EPF10K20T144-4板载资源,基于LPM_ROM构建4位乘4位无符号数乘法器。重点讨论了lpm_rom元件的设置方法,包括.mif文件的生成和在电路图中的应用。通过C程序生成乘法表数据,并将其导入.mif文件,最终完成电路编译、时序仿真及板载测试。文中还列举了在搭建和测试过程中可能遇到的问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于LPM_ROM的4位乘4位无符号数乘法器

前言
本次实验所用软件为Quartus||9.0,所用板载为EPF10K20T144-4

注意事项
(1)本博客中所创建电路的的时序仿真可能出现问题,问题在于开头一段的0数据和52数据
(2)在向板载烧入程序的时候时记得安装驱动。

搭建仿真电路图
1、创建Block Diagram/Schematic File文件
2、搭建自己的电路图

(注:电路原理图如下)
在这里插入图片描述
2.1第二步可能遇到的问题:
问题一:不会设置lpm_rom元件
解决办法:按如下步骤执行即可(注:下图步骤只到需要生成.mif文件,不是lpm_rom元器件设置的全部步骤)


问题二:在逻辑单元lpm_rom时无法找到.mif文件

问题原因:没有生成.mif文件
解决办法:生成.mif文件
(注:生成.mif文件步骤一:new->Memory lntialization File
(注:生成.mif文件步骤二:在弹出的界面上输入如下界面的数字,输入完后点击“OK”)

(注:生成.mif文件步骤三:在创建的.mif文件下输入如下界面的数字)

(注:生成文件所需数据由以下此段C程序产生,程序产生的数据可直接复制粘贴到.mif文件中)

#include<stdio.h>
int main(){
	int i,j;
	for(i=0;i<=15;i++){
		for(j=0;j<=15;j++){
			printf("%d ",i*j);
			if(j==7||j==15){
				printf("\n");
			}
		}
	}
	return 0;
}

(注:生成.mif文件步骤四:保存并命名文件为mult_rom.mif)
问题三:已经生成了,但在lpm_rom逻辑单元的时候找不到mult_rom.mif文件。

问题原因:没有更改搜索文件格式

解决办法:更改搜索文件格式位MIF Files(*.mif)

3、对电路图进行编译。

对所搭建电路进行时序仿真
1、创建Vector Waveform File文件。
2、如图所示设置仿真引脚和初始化数值

3、生成仿真文件

对所搭建电路进行板载测试
1、设置板载与电路图相对应的引脚

2、将电路图烧入板载

3、验证成功

(注:板载使用方法一:输入a对应引脚PIN_83—PIN_80;输入b对应引脚PIN_70—PIN_69;)
(注:板载使用方法二:输出result对应引脚PIN_118—PIN_110;时钟对应引脚PIN_60;)
(注:板载使用方法三:调好输入后,要得到输出,必须调整clk的电位使其在0、1之间改变;)

LPM_ROMLPM_RAM设计 一 实验目的 掌握FPGA中LPM_ROM的设置: 1 作为只读寄存器ROM的工作特性和配置方法; 2 学习将程序代码或数据以MIF格式文件加载于LPM_ROM中; 掌握lpm_ram_dp的参数设置和使用方法: 1 掌握lpm_ram_dp作为随即存储器RAM的设置; 2 掌握lpm_ram_dp的工作特性和读写方法; 3 掌握lpm_ram_dp的仿真测试方法。 二 实验要求 1 LPM_ROM定制和测试 LPM_ROM的参数设置: LPM_ROM中数据的写入,即初始化文件的编写; LPM_ROM的实际应用,在GW48实验台上用N0.0电路模式测试。 2 LPM_RAM定制和测试 LPM_RAM的参数设置; LPM_RAM的实际应用,在GW48实验台上用N0.0电路模式测试。 三 实验原理 用户可编程硬件FPGA芯片设计,有许多可调用参数化库模块LPM(Library Parameterized Modules),课直接调用设置,利用嵌入式阵列块EAB(Embed Array Block)构成lpm_ROMlpm_RAM等各种存储器结构。 Lpm_ROM有5组信号: 地执信号address[]; 数据信号q[]; 时钟信号inclock、outclock; 允许信号memenable. 其参数是可以设定的。由于ROM是只读寄存器,它的数据口试单向的输出端口,数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。 Lpm_ram_dq的输入/输出信号如下: 地址信号 address[]; RAM_dqo的存储单元地址; 数据输入信号DATA[] RAM_dqo的数据输入端; 数据输出信号Q[]; RAM_dqo的数据输出端; 时钟信号CLK; 读/写时钟脉冲信号; 读写信号W/R 读/写控制信号端 数据从总线端口DATA[]输入。丹输入数据和地址准备好以后,由于在inclock上的信号是地址锁存时钟,当信号上升沿到来时,地址被锁存,于是数据被写入存储单元。数据的读出控制是从A[]输入存储单元地址,在CLK信号上升沿到来时,该单元数据从Q[]输出。W/R为读/写控制端,低电平时进行读操作,高电平时进行写操作; 四 实验步骤
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值