求大神,帮翻译!无奈求助!vhdl

LIBRARY ieee ;
USE ieee.numeric_bit.all ;
ENTITY bcd_adder_tb IS
END ;

ARCHITECTURE bcd_adder_tb_arch OF bcd_adder_tb IS
SIGNAL x : unsigned (7 downto 0) :="00100000" ;
SIGNAL y : unsigned (7 downto 0) :="10000000" ;
SIGNAL z : unsigned (11 downto 0) ;
COMPONENT bcd_adder
PORT (
x : in unsigned (7 downto 0) ;
y : in unsigned (7 downto 0) ;
z : out unsigned (11 downto 0) );
END COMPONENT ;
BEGIN
DUT : bcd_adder
PORT MAP (
x => x ,
y => y ,
z => z ) ;
x<="10000000" after 50 ns;
y<="10001000" after 50 ns;
END ;

首先要说明一个问题,你这段代码是不完整的,也就是说,无法执行的。

LIBRARY ieee ; -- IEEE 的标准库声明。
USE ieee.numeric_bit.all ;

ENTITY bcd_adder_tb IS -- 这里端口定义为何为空?
END ;

ARCHITECTURE bcd_adder_tb_arch OF bcd_adder_tb IS --结构体声明
SIGNAL x : unsigned (7 downto 0) :="00100000" ; 信号声明: 如: 信号 X ,unsigned (无符号数) ,(7 downto 0) 共8位 从第七位到第0位。
SIGNAL y : unsigned (7 downto 0) :="10000000" ; :="00100000" 初值为 00100000
SIGNAL z : unsigned (11 downto 0) ;

COMPONENT bcd_adder 这部分为元件声明,既然主代码中没元件描述,可以理解为它在调用库文件中的某元件,或者本代码只是片段,元件描述部分被省略掉了。
PORT (
x : in unsigned (7 downto 0) ; --元件端口声明。
y : in unsigned (7 downto 0) ;
z : out unsigned (11 downto 0) );
END COMPONENT ; --元件 声明结束。

BEGIN
DUT : bcd_adder --进行元件调用, 其中 x=> x, y=>y, z=>z, 是端口映射。 也就是说,被调用的元件原本的端口名称是 箭头 => 右边的 x,y,z。 而此时调用时 需要对端口名称重新命名,当然名字也可以定义成元件本身的端口名字,就好比本例。 X=>X,
PORT MAP (
x => x ,
y => y ,
z => z ) ;
x<="10000000" after 50 ns; --赋值操作,这没什么好解释的了。
y<="10001000" after 50 ns;
END ;

个人感觉这么调用元件是很无聊的一件事情,元件创建者则更自讨麻烦,当然不排除它不想别人知道自己的源代码是什么。
温馨提示:答案为网友推荐,仅供参考
相似回答