| 银杏科技有限公司旗下技术文档发布平台 | 
	
		| 技术支持电话 | 0379-69926675-801 | 
	
		| 技术支持邮件 | Gingko@vip.163.com | 
	
		| 版本 | 日期 | 作者 | 修改内容 | 
	
		| V1.0 | 2020-11-18 | zgf | 初次建立 | 
实验六:乘法器IP核的调用
一、 实验目的
-  学习HqFPGA软件中调用IP核的方法。 
-  学习在工程中调用乘法器IP核的设计方法。 
 
二、 实验设备
-  iCore3L双核心开发板。 
-  XiST USB Cable 或相同功能的下载器。 
-  装有HqFPGA开发环境的电脑。 
 
三、 实验原理
四、 操作步骤
1、建立工程
2、建立乘法器IP核文件
3、添加IP核文件
-  如果建立工程时未添加例程下的源文件,点击左侧边栏的“设计管理”按钮,弹出“设计管理”界面,点击“新建文件”按钮,新建源文件。如果建立工程时添加了例程下的源文件,则直接进行下一步。 
-  点击“语法检查”按钮,查看源代码输入是否有语法错误,如无报错,点击“保存”按钮;弹出窗口中将文件命名为mult.v,完成顶层模块的建立。 
-  点击主界面左侧栏的“工程属性”按钮,弹出“工程属性”界面,在界面下方的“源文件”一栏,点击“+”号,将建立的顶层模块文件(mult.v)及乘法器IP核文件(xsIP_DSP_MULT.v)添加到工程里。 
 
 
4、例化乘法器IP核及代码讲解
//-------------------- mult IP Core-------------------//
DSP_MULT  u0(									//调用乘法器IP核
    .A(a),
    .B(b),
    .Product(q)
	);
IP核模块名  例化名(
	.IP核信号列表 (连接到IP核该端口的信号),
	.IP核信号列表 (连接到IP核该端口的变量),
	...
	...
	.IP 核信号列表 (连接到IP核该端口的变量)
);
 
//----------------------------- a、b-------------------------------//
	always@(posedge fpga_clk or negedge rst_n) 
	if(!rst_n)
		begin
			a<=8'd0;
			b<=8'd0;
		end
	else if(a==8'd255)		//循环累加到255,然后归零	
		begin
			a<=8'd0;
			b<=8'd0;
		end
	else
		begin			//输入变量a、b进行累加操作
			a<=a+1'd1;
			b<=b+1'd1;
		end
//取输出变量的最高位控制红色LED,绿色LED常亮,取输出变量的最低位控制蓝色LED	
assign fpga_led={q[15],1'd0,q[0]};
 
五、 实验结果
-  iCore3L双核心板上电后,FPGA_LED显示为绿色,表示此时乘法器还未开始运行。约三秒后三色LED变色,表示有复位操作,乘法器开始运行,乘法器输出变量的最高位和最低位的值开始循环变化。由于变化速度较快,人眼分别不出来其颜色渐变的过程,但是能明显观察到三色LED显示的颜色发生了变化。 
-  可以通过HqInsight 查看输入变量a和b以及输出变量q的波形变化;对ab及q的值进行分析,可以确认乘法器成功运行,且运行结果正确。控制LED的led[1:0]也根据输出变量Q的最高位和最低位发生变化。 
 
