Xilinx 使用shift 您所在的位置:网站首页 分布式RAM的qbpoclk是什么 Xilinx 使用shift

Xilinx 使用shift

2024-07-03 18:41| 来源: 网络整理| 查看: 265

最近FPGA需要用到大量的矩阵运算,需要使用多个shift_RAM对数据进行缓存,考虑到资源消耗问题,做相关记录。

一、LUTRAM和 BRAM在资源使用上的区别?

  LUTRAM 和 BRAM最主要的却别在于 LUTRAM是使用的没有综合的LUT单元生成的动态RAM,在Design中使用

多少,综合后就会消耗多少RAM。而BRAM他是块RAM,在FPGA中的位置和大小是固定的,在例化一个BRAM后,

即使只是占用到该RAM的一小部分,而综合后,同样会消耗一整块RAM的资源。

二、shift_RAM消耗分布式RAM(LUTRAM)还是BRAM (Block RAM)?

      1)查看shift_ram官方手册(pg122),  消耗的为LUTs

  

 

 

   2)综合验证,为了验证,我综合了36个 数据位宽为10bit,深度为640bit的shift_RAM

`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2020/07/15 10:51:34 // Design Name: // Module Name: shift_ram // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module shift_ram( input clk , input [9:0] din , output [9:0] dout ); wire [9:0] c0; wire [9:0] c1; wire [9:0] c2; wire [9:0] c3; wire [9:0] c4; wire [9:0] c5; wire [9:0] c6; wire [9:0] c7; wire [9:0] c8; c_shift_ram_0 u0( .D (din), .CLK (clk), .Q (c0) ); c_shift_ram_0 u1( .D (c0), .CLK (clk), .Q (c1) ); c_shift_ram_0 u2( .D (c1), .CLK (clk), .Q (c2) ); c_shift_ram_0 u3( .D (c2), .CLK (clk), .Q (c3) ); c_shift_ram_0 u4( .D (c3), .CLK (clk), .Q (c4) ); c_shift_ram_0 u5( .D (c4), .CLK (clk), .Q (c5) ); c_shift_ram_0 u6( .D (c5), .CLK (clk), .Q (c6) ); c_shift_ram_0 u7( .D (c6), .CLK (clk), .Q (c7) ); c_shift_ram_0 u8( .D (c7), .CLK (clk), .Q (c8) ); c_shift_ram_0 u9( .D (c8), .CLK (clk), .Q (dout) ); endmodule

`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2020/07/15 10:59:53 // Design Name: // Module Name: shift_tam_top // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module shift_tam_top( input clk , input [39:0] din , output [39:0] dout ); wire [9:0] dout0; wire [9:0] dout1; wire [9:0] dout2; wire [9:0] dout3; assign dout = {dout0,dout1,dout2,dout3}; shift_ram u0( .clk (clk) , .din (din[9:0]) , .dout (dout0) ); shift_ram u1( .clk (clk) , .din (din[19:10]) , .dout (dout1) ); shift_ram u2( .clk (clk) , .din (din[29:20]) , .dout (dout2) ); shift_ram u3( .clk (clk) , .din (din[39:30]) , .dout (dout3) ); endmodule

  最后看资源消耗综合报告:从报告中可以看出,主要消耗的还是LUTRAM资源,没有使用到BRAM的资源。

 

 

 

  

  

 

 

  

 

   


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有