ups 发表于 2010-6-27 23:20:05

在mux+plus2里面 这段VHDL程序该怎么改~

在mux+plus2里面 这段VHDL程序该怎么改~
在mux+plus2里面 总提示Assignment error:sequential signal Assignment cannot contain
conditional waveforms
  以下是程序:
  library ieee;
  use ieee.std_logic_1164.all;
  entity mine1 is
  port(a,b,c,d:in std_logic_vector(3 downto 0);
   next1
       
ut std_logic_vector(3 downto 0));
  end mine1;
  architecture one of mine1 is
  begin
  process(a,b,c,d)
  begin
   next1<=(1,1,0,1)when a=1101and b=1101else
   d when a=1101 else
   c when b=1101 else
   (1,0,1,1);
  end process;
  end one;

CHANG 发表于 2010-6-28 01:05:20

把进程process去掉<br>
next1&lt;=(&rsquo;1&rsquo;,&rsquo;1&rsquo;,&rsquo;0&rsquo;,&rsquo;1&rsquo;)when a=&ldquo;1101&ldquo;and b=&ldquo;1101&ldquo;else<br>
   d when a=&ldquo;1101&ldquo; else<br>
   c when b=&ldquo;1101&ldquo; else<br>
   (&rsquo;1&rsquo;,&rsquo;0&rsquo;,&rsquo;1&rsquo;,&rsquo;1&rsquo;);

VVIC 发表于 2010-6-28 01:18:20

楼上的说的有道理!

AAT 发表于 2010-6-28 01:56:24

楼上的有道理

ngtim 发表于 2010-6-28 03:30:12

next1&lt;=(&rsquo;1&rsquo;,&rsquo;1&rsquo;,&rsquo;0&rsquo;,&rsquo;1&rsquo;)?<br>
直接 next1 &lt;= "1101"不好嘛<br>
<br>
next1 &lt;= "1101"更好了 只是当时不知道哪错了 还以为赋值是出错了呢<br>
<br>
谢谢朋友们&nbsp;&nbsp;通过了 <br>
刚开始学 对并行和顺序语句 还不是很敏感&nbsp;&nbsp;这次记忆深刻了

ngtim 发表于 2010-6-28 03:57:37

process必须去掉吗?<br>
我觉得好象必须要一样呢<br>
我是新手,还希望大家指教

CHAN 发表于 2010-6-28 05:16:40

说点实际的!!!process不必要去掉!!

ATA 发表于 2010-6-28 05:35:55

自己写得时候只觉得不加process是惯例,原来是因为是并行语句阿,学习了,谢谢。

UFO 发表于 2010-6-28 06:23:14

受教了谢谢

CCIE 发表于 2010-6-28 06:41:24

process语句中是顺序执行的,无法加入when语句吧
页: [1] 2
查看完整版本: 在mux+plus2里面 这段VHDL程序该怎么改~