小编Ami*_*mir的帖子

VHDL中的变量究竟是什么?

我知道如何在 VHDL 中使用变量以及我可以用它做什么,但我不知道它在硬件中到底是什么?

硬件中的信号和变量有什​​么区别,变量的值存储在哪里?它是电线还是取决于我的代码?

根据“QuantumRipple”评论,我扩展了这个问题:

我用ISE(Xilinx综合工具)合成了以下简单的代码,并将变量(var)合成为D触发器??

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY test IS
    port(
        clk    : in  std_logic;
        input  : in  std_logic;
        output : out std_logic
    );
END test;

ARCHITECTURE Behavioral OF test IS
BEGIN
    PROCESS(clk)
        VARIABLE var : std_logic;
    BEGIN
        IF clk'event AND clk = '1' THEN
            var := input;
        END IF;
        output <= var;
    END PROCESS;
END Behavioral;
Run Code Online (Sandbox Code Playgroud)

感谢您的评论和回答...

vhdl

5
推荐指数
1
解决办法
1479
查看次数

敏感列表错误

我想计算数组元素的总和。阵列的元素在每个时钟上升沿(按顺序)分配。我不想在下一个时钟上升沿得到元素的总和,所以总和的设计必须是组合的。我可以在没有任何错误的情况下获得正确的仿真结果,但是我的代码没有在 ISE(Xilinx 合成工具)中合成。我正在研究 Spartan3。

我的代码:

always @* begin
    sum = 0;
    for (i=0; i<K; i=i+1)
        sum = sum + shiftReg[i];    
end
Run Code Online (Sandbox Code Playgroud)

错误

Xst:902 - 始终阻止敏感列表中出现意外的 shiftReg 事件。

我搜索了解决方案。一种方法是添加shiftReg敏感列表中的所有元素,但在我的项目中,元素的数量是K(K是一个参数)。

verilog xilinx-ise

2
推荐指数
1
解决办法
1947
查看次数

标签 统计

verilog ×1

vhdl ×1

xilinx-ise ×1