Q:2个简单函数的VHDL实现

Q:2个简单函数的VHDL实现,vhdl,Vhdl,我希望实现函数y=a和b;y=(a或b)和(c或d) 我如何分配a(位1)和b(位2),使其能够测试任何可能的值,并在每个组合之间产生20ns的延迟?在过去的两天里,我一直在为一个学校项目学习VHDL,甚至不确定我所说的是否正确。你想在刺激过程中使用等待 process begin for i in 0 to 2**2-1 loop --2**(number of input bits)-1 (a, b) <= to_unsigned(i,2); wait f

我希望实现函数y=a和b;y=(a或b)和(c或d)


我如何分配a(位1)和b(位2),使其能够测试任何可能的值,并在每个组合之间产生20ns的延迟?在过去的两天里,我一直在为一个学校项目学习VHDL,甚至不确定我所说的是否正确。

你想在刺激过程中使用
等待

process
begin
   for i in 0 to 2**2-1 loop --2**(number of input bits)-1
      (a, b) <= to_unsigned(i,2);
      wait for 20 ns;
   end loop;
   wait;
end process;
过程
开始
对于0到2**2-1循环中的i--2**(输入位数)-1

(a,b)您能否更详细地说明这个for循环是如何工作的?为什么是0到3?另外,如果我想将结果分配给y,我是否只需键入“y0到3”,因为您有2个输入位,2**2是4(0-3是4个值)。我将对其进行编辑,使其通过计数器宽度显式控制。
y
由您的组件实例化驱动;您不想再次驱动它。结果已经在
y
中。y在实例化的组件中已经有一个驱动程序,它是端口y。有四个两个输入的组合表示二进制值。一个循环为i的每个值执行其主体内的语句序列,该序列在这些语句期间是常量。在二进制中,0到3映射所有四个值的组合,您也可以:不使用计数器信号。通过聚合目标(
(a,b)
)为a和b赋值其中i的值转换为i的整数(自然)值的无符号二进制表示形式。@user1155120聚合目标只能在VHDL-2008中使用,对吗?否。任何修订。
process
begin
   for i in 0 to 2**2-1 loop --2**(number of input bits)-1
      (a, b) <= to_unsigned(i,2);
      wait for 20 ns;
   end loop;
   wait;
end process;