【发布时间】:2012-12-15 12:54:29
【问题描述】:
下午好,
您认为您可以向我解释 if 语句右侧的值是什么意思吗? 在我不太明白的示例中,有两个声明的无符号向量。
CONSTANT ZERO : UNSIGNED(3 DOWNTO 0) := (OTHERS=>'0);
SIGNAL count : UNSIGNED(3 DOWNTO 0) := ZERO;
接着是:
IF clk'EVENT AND clk='1' THEN
if count<(2-1) THEN
output<='1';
etc...
我有问题的是部分
如果计数(2-1)
这 2-1 意味着什么?我有几个想法。通过谷歌搜索,我发现 vector_name(n-1 downto 0) 是声明向量的常用方法,其中 n = 位数或总线宽度。但是,这似乎与示例没有任何共同之处。另一种猜测:左边的值是一个无符号二进制信号,那么可能2-n表示比较前的n应该变成二进制?
附:此示例来自分频器。
【问题讨论】:
-
哪个库声明了 UNSIGNED?我问是因为我不知道非标准是否提供了它应该提供的奇怪子集。使用 numeric_std 我看不出有什么理由不说
if count < 1。除非它是一种半记录 kludgy 修复的方法,以解决预期的if count < 2的意外问题,例如如果比较提前一个周期移动以帮助管道...... -
这里是所有用到的库:library IEEE;使用 IEEE.STD_LOGIC_1164.ALL;使用 IEEE.NUMERIC_STD.ALL;
-
抱歉,Drummond 先生,您能解释一下逐一问题是什么意思吗?
标签: if-statement vhdl unsigned