Vhdl 为什么(逻辑)功率为零?

Vhdl 为什么(逻辑)功率为零?,vhdl,xilinx,Vhdl,Xilinx,我想在代码中看到内存访问的功耗。我的代码在ISE xilinx合成工具中合成为RAM128*1。我正在研究Spartan3 3s400,我刚刚完成了ucf文件,并在“计时约束”选项卡中添加了一个时钟周期 我的代码: - 电源报告: - 下图与逻辑功耗有关,详细信息由Xilinx XPower Analyzer提供: 我的问题是为什么逻辑幂为零? 我如何才能看到与内存访问相关的功率,这取决于内存的大小?哦,很抱歉,您使用的是LUT-RAM,而不是BlockRAM。我认为你应该增加你的设计尺寸来看到

我想在代码中看到内存访问的功耗。我的代码在ISE xilinx合成工具中合成为RAM128*1。我正在研究Spartan3 3s400,我刚刚完成了ucf文件,并在“计时约束”选项卡中添加了一个时钟周期

我的代码: -

电源报告: -

下图与逻辑功耗有关,详细信息由Xilinx XPower Analyzer提供: 我的问题是为什么逻辑幂为零?
我如何才能看到与内存访问相关的功率,这取决于内存的大小?

哦,很抱歉,您使用的是LUT-RAM,而不是BlockRAM。我认为你应该增加你的设计尺寸来看到一些变化。根据你的第二条评论,我增加了内存的大小,并且发生了一些变化。逻辑:0.02MW您认为电源报告中的逻辑电源与内存访问有关吗?如果是,您修复了我的问题。原始设计有128位存储在128行和一列内存中。正如您所描述的,您正在使用同步写入和异步读取->这将转换为LUT-RAM。一个LUT可以容纳32位,因此128位需要4个LUT,这些LUT组合在一个片中。地址选择和输出多路复用由片中的F7MUXs和F8MUX完成。因此,您的设计人员只有一个片,其功耗非常低,低于0.01 mW,否则您会看到它。如果你增加内存大小,不同的片需要更多的LUT。我认为,在增加内存大小之前,功耗太小,我查过了:Spartan3 FPGA有4个输入的LUT,这意味着每个LUT最多可以存储16位。Spartan3片有2个LUT,提供32位内存。UG331第204页这些LUT称为4输入LUT或LUT4。较新的Virtex、Artix、Kintex和Zynq设备具有LUT6。
entity SRAM is
  port(
    clk  : in std_logic;
    wr   : in std_logic;
    din  : in std_logic;
    dout : out std_logic;
    addr : in integer range 0 to 127
  );
end SRAM;

architecture Behavioral of SRAM is
    type matrix is array (0 to 127) of std_logic;
    signal mem : matrix;
    begin
        process(clk)
            begin
            if clk = '1' and clk'event then
                if wr = '1' then
                    mem(addr) <= din;
                end if;
            end if;
    end process;
    dout <= mem(addr);
end Behavioral;