&在VHDL语言中是什么意思,具体怎么用呢?谢谢

process(clk1)
begin
if clk1'event and clk1 = '1' then
datacom <= fskcodein & datacom(1);
end if;
end process;
希望能解释下这段程序,谢谢

楼主,您好!
我刚刚查了下VHDL的资料。&是算术运算符中:并置运算符。主要用于将操作数或者是数组连接起来构成新的数组。
应用举例:
'a' & 'b' & 'c'的结果是"abcd"他们的连接对象长度要一致!
解释下:
重点 if clk1'event and clk1 = '1' then
datacom <=fskcodein & datacom(1);
不知道你的具体定义,大概描述下,假如clk1'event and clk1 得出的结果是真,那么把fskcodein和datacom(1)连接起来形成一个新的数据赋值给datacom.连接规则看上面!
谢谢!楼主!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-23
并值符号:如果clk1上升沿到了,datacom的类型应该是std_logic_vector,假设是2位的。那么就是std_logic_vector(1 downto 0)。fskcodein应该是bit类型,那么就是把fskcodein的数值和datacom的高位组成一个新的2位的datacom。
假如datacom:out std_logic_vector(1 downto 0)
datacom<="01" 高位是0
fskcodein: out bit;
fskcodein<='0' 是0
那么新的datacom是00本回答被提问者和网友采纳
第2个回答  2011-08-23
楼上说的是C、C#、C++等计算机编程语言的用法,不是VHDL语言中的用法。

& 是VHDL中的连接操作符:

signal Z_BUS:bit_vector(3 downto 0);
signal A,B,C,D:bit;
signal BYTE:bit_vector(7 downto 0);
signal A_BUS:bit_vector(3 downto 0);
signal B_BUS:bit_vector(3 downto 0);

Z_BUS <= A & B & C & D;
BYTE <= A_BUS & B_BUS.
第3个回答  2011-08-24
&的用法看楼上的解释
这个程序作用很简单:
当clk1的上升沿来的时候,讲fskcodein和datacom的1位合并赋给datacom
估计这里datacom是个std_logic_vector(1 downto 0)类型的,实现的就是吧fskcodein的数据移位输入
相似回答