首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Xilinx FPGA芯片底层单元的使用(6)

Xilinx FPGA芯片底层单元的使用(6)

4)调用该IP Core完成设计,代码如下:

module my_muladder(clk_50MHz, reset, ce, dina, dinb, dout);

input clk_50MHz;
input reset;
input ce;
input [15:0] dina;
input [15:0] dinb;
output [34:0] dout;

reg [34:0] dout;
wire [34:0] p_out;
reg load = 0;
reg [2:0] cnt = 0;
always @(posedge clk_50MHz) begin
         if(reset) begin
                  cnt <= 0;
                  load <= 0;
                  dout <= 0;
         end
         else begin
            cnt <= cnt + 1'b1;
                 if(cnt == 0)
                          load <= 1'b0; //直通加法器
                else
                         load <= 1'b1; //load=1累加
                if(cnt == 2)
                        dout <= p_out;
                else
                        dout <= dout;
               end
end

muladder muladder(

.A_IN(dina),
.B_IN(dinb),
.CE_IN(ce),
.CLK_IN(clk_50MHz),
.LOAD_IN(load),
.RST_IN(reset),
.P_OUT(p_out)
);

endmodule

上述程序经过Synplify Pro综合后,得到的RTL结构如图4-135所示。



图4-135 乘加器应用程序的RTL结构图

经过仿真测试得到的功能波形图如图4-136所示,可以看到本例正确地实现了8个乘积结果累加的功能。



图4-136 乘加器应用程序的仿真结果

4.7 本章小结

本章详细介绍了基于ISE的FPGA设计流程以及多个辅助工具(XST、XPower、PACE、ModelSim、Synplify以及MATLAB)的使用方法。首先介绍了ISE软件主要特性及其安装流程,然后介绍了如何通过ISE完成FPGA设计,详细介绍了综合、仿真以及实现的软件操作和XST、XPower、PACE等工具的基本操作。之后,简单介绍了Synplify Pro和ModelSim SE的安装流程,并介绍如何在ISE关联Synplify Pro和ModelSim SE 的使用方法以及和ISE的联合开发流程。再次,介绍了MATLAB和ISE的联合开发模式,其中利用MATLAB来辅助ISE开发是目前流行的设计方法之一,也是本书所强调的重点。最后,介绍了Xilinx FPGA底层单元(DCM、块RAM以及硬核乘加器)的原理和使用方法。鉴于篇幅,不可能对以上所提及软件的其他功能进行详细介绍,读者应该在实际工作中学习并熟练掌握。

继承事业,薪火相传
返回列表