我一直在努力学习如何在VHDL中使用条件信号赋值(我相信哪些是WHEN ELSE语句?)然后想出了一个应该很简单的代码。但是ModelSim不让它编译,一直告诉我我有一个非法的并发语句。哪里?为什么?我曾尝试在进程内执行IF ELSIF ELSE语句,但仍然收到完全相同的错误,因此我现在比开始时更加困惑……Use ieee.std_logic_1164.all;
Y <= '0' WHEN A = '0
我是VHDL语言的新手,但是有人教我在写一个值到像data_out这样的输出端口时,你应该总是使用“中间人”信号来传递你的值。在这里,我尝试使用信号"data“来传输信号,但是这个实现导致了data_out变化之前的延迟(当ld变高时)。完全取出数据,并对我在C程序中的编码方式进行编码,消除了这种延迟,寄存器工作得很好。你知道为什么会这样,为什么我不应该这么做吗?data_out <= data_in; end