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