2014-11-05 63 views
0

我遇到麻烦的代码会将控制字分成几个部分,以便它们可以被各自的电路使用。针对别名声明的错误10500

当我尝试编译这段代码,我得到每个别名线两条10500错误: “近文本‘别名’;需要‘结束’,或‘(’或标识,或并发声明” “近文字“是”期待“;”或“通用”

我尝试添加一个。“结束;”和别名声明之后“结束的别名”,但它仍然返回相同的错误

。我还试图在声明的各个部分添加“信号”,但这也会导致相同的错误。

Orig我在sts块之前将std_logic_vector转换为了bit_vector,并且别名输出是位类型而不是std_logic,但我将其更改为std_logic,认为类型转换是问题。

--Splits control word into specific sections. 
    Architecture split of t11214 is 
      Begin 
       Alias enable_input: std_logic is instruction(1); 
       Alias enable_output: std_logic is instruction(2); 
       Alias select_accumulator: std_logic is instruction(3); 
       Alias select_operand: std_logic_vector(1 to 2) is instruction(4 to 5); 
       Alias select_prcmp: std_logic_vector(1 to 2) is instruction(6 to 7); 
       Alias select_prenot: std_logic_vector(1 to 2) is instruction(8 to 9); 
       Alias select_function: std_logic_vector(1 to 2) is instruction(10 to 11); 
       Alias select_rng: std_logic is instruction(12); 
       Alias shift: std_logic_vector(1 to 4) is instruction(13 to 16); 
    End architecture split; 

回答

1

Alias是声明的部分,所以它必须是Begin之前,从而像:

Architecture split of t11214 is 
    ... 
    Alias enable_input: std_logic is instruction(1); 
    ... 
Begin 
    ... 
End architecture split; 
+1

感谢。这几个小时我一直在搞这个代码,不敢相信这个错误太简单了。 – 2014-11-05 12:23:01