一个VHDL语言的问题 高手帮帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/09/21 04:32:15
我初学VHDL语言
这是用行为描述方式 写的一个 全加器

对于这条语句我一点都不懂 这是我从书上抄下来的

运行时总有两个错误说
标示符(s_tmp ,co_tmp )错误 我打**的两行

请哪位高手解释一下打“\\” 的几行是什么意思
先谢谢了 o(∩_∩)o..

library ieee;
use ieee.std_logic_1164.all;
entity full_adder is
port(a,b,cin:in std_logic;
co: out std_logic;
s: out std_logic);
end full_adder;
architecture behave of full_adder is
begin
process(a,b,cin)
constant s_tmp: std_logic_vector(0 to 3):="0101";\\\\\\
constant co_tmp: std_logic_vector(0 to 3):="0011";\\\\\\\
variable number: integer range 0 to 3;
begin
if(a='1')then
number :=number+1;
end if;
if(b='1')then
number :=number+1;
end if;
if(cin='1')then

居然还有这么写的程序啊!我觉得很有问题
似乎源码的本意是让number初始为0, number就是n
假如a=0,b=0,cin=0, 则number=0+0+0+0=0,即s等于"0101"的bit0 就是0, co等于"0011"的bit0就是0
假如a=1,b=0,cin=0, 则number=0+1+0+0=1,即s等于"0101"的bit1 就是1,co等于"0011"的bit1就是0
依此类推

没看出有什么用,或是有这种语法定义?你删掉编译试试。

这是什么全加器,哪本书上的。

s <=s_tmp (n);***** \\\\\
co <=co_tmp (n);***** \\\\\
n哪来的,改成0到3任一数字试试