在我的代码中,当我写这个语句时,它是模拟的,但不是可合成的。为什么?现在我该怎么解决这个问题呢?
IF ((DS0='1' OR DS1='1')and rising_edge(DS0) and rising_edge(DS1) AND DTACK='1' AND BERR='1') THEN
RV0 <= not RV;
else
RV0 <= RV;
我正在尝试写一个非常快的时钟异步数字系统。输入由两个开关和一个按钮确定,允许进入inputs.Each输入确定允许转换到另一个状态。我使用的是digilent basys2板的内部时钟B8。我似乎正确地到达了第二个状态,但我不能到达其他状态。行为模拟给出了预期的结果。下面是我的实现,
entity states is
Port ( X : in STD_LOGIC;
Y : in STD_LOGIC;
clock : in STD_LOGIC;
input : in STD_LOGIC);
end states;
architecture B
我正在尝试用VHDL语言实现一个D触发器,使用我写的D锁存器。但是时钟似乎出了点问题,我不知道是什么原因。
这是我的D锁存器的代码。
Library ieee;
Use ieee.std_logic_1164.all;
entity d_latch is
port (c,d : in std_logic;
q,nq : out std_logic);
end d_latch;
architecture arch of d_latch is
Signal qt, nqt: std_logic;
begin
qt <= (d nand c) nand n
在解决我签约构建的代码中的问题时,我遇到了来自DateTime.UtcNow的似乎不一致的结果。在我写这篇文章的时候,时间似乎在1/19/2017 7:3倍和1/20/2017 3:2倍之间波动。
我已经使用下面的代码创建了一个;单击“编辑”,然后单击“完成它!”-可能需要运行几次才能显示该行为。
using System;
public class Test
{
public static void Main()
{
Console.WriteLine(DateTime.UtcNow);
}
}
录屏:
有人对这种行为有什么解释吗?
我想写一个设计,在这个设计中,一个进程在1分钟后被激活。
我又创建了一个进程,使用计数器增量来创建延迟,并切换一个信号,并在必须延迟的进程的灵敏度列表中给出该信号。
signal delay_over : std_logic;
process ( delay_over )
begin
if clk'event and clk '1' then
--design
end if;
end process;
delay:process ( clk )
variable counter : integer := 0;
begin
-
关于难-简单的问题,我知道这很普遍,但这正是我问的原因……
如果我用vhdl写一段代码,我使用的进程是这样开始的:
Process(clk,x,y,x)
begin
...
end process
有没有什么方法可以让我不必保存x,y,z值?我对此的理解是,如果我不能拯救它们,我就不能说其中一个改变了,这意味着我必须拯救它们。
我正在和一个朋友一起写大学作业,我们有不同的意见。非常感谢你的帮助!