VHDL BCD加法器代码-错误:HDLCompiler:69-<;未签名>;未申报

VHDL BCD加法器代码-错误:HDLCompiler:69-<;未签名>;未申报,vhdl,Vhdl,我正在使用Charles H.Roth和Lizy Kurian John编写的题为《使用VHDL的数字系统设计》(第二版)的教科书。我一直在遵循书中提供的VHDL代码示例,但我尝试了一个产生错误的片段 下面给出了VHDL代码示例(它直接来自教科书) ieee库; 使用IEEE.NUMERIC_STD.ALL; 实体BCD_加法器为 港口( X:无符号(7到0); Y:无符号(7到0); Z:输出未签名(11到0) ); 端BCD_加法器; BCD_add的体系结构BCDadd 别名Xdig1:未

我正在使用Charles H.Roth和Lizy Kurian John编写的题为《使用VHDL的数字系统设计》(第二版)的教科书。我一直在遵循书中提供的VHDL代码示例,但我尝试了一个产生错误的片段

下面给出了VHDL代码示例(它直接来自教科书)

ieee库;
使用IEEE.NUMERIC_STD.ALL;
实体BCD_加法器为
港口(
X:无符号(7到0);
Y:无符号(7到0);
Z:输出未签名(11到0)
);
端BCD_加法器;
BCD_add的体系结构BCDadd
别名Xdig1:未签名(从3到0)是X(从7到4);
别名Xdig0:无符号(3到0)是X(3到0);
别名Ydig1:未签名(从3到0)为Y(从7到4);
别名Ydig0:未签名(3到0)为Y(3到0);
别名Zdig2:无符号(从3到0)是Z(从11到8);
别名Zdig1:无符号(从3到0)是Z(从7到4);
别名Zdig0:无符号(3向下到0)为Z(3向下到0);
信号S0:无符号(4到0);
信号S1:无符号(4到0);
信号C:位;
开始

S0架构声明中的主单元名称与实体简单名称不匹配:

entity bcd_adder is
vs:

将其转换为:

architecture bcdadd of bcd_adder is
您还需要添加

use ieee.std_logic_1164.all;
到您的context子句,使std_ulogic对于来自字符文本的隐式类型转换可见

还可以更改
c
的类型,这样就不需要进行其他类型转换:

    signal c : std_ulogic;
你可以在作业中找到


S1我听从了你的建议,解决了所有的问题。非常感谢。@Lincoln在stackoverflow上,我们用投票和接受的答案表达“谢谢”。如果David Koontz的答案解决了您的问题,请接受它:。另外,欢迎使用StackOverflow;)
use ieee.std_logic_1164.all;
    signal c : std_ulogic;