欧卡2中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

需要三步,才能开始

只需两步,慢速开始

玩欧卡就用莱仕达V99方向盘欧卡2入门方向盘选莱仕达V9莱仕达折叠便携游戏方向盘支架欢迎地图Mod入驻
查看: 8020|回复: 2
收起左侧

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

[复制链接]
起名字最烦了 发表于 2012-7-8 02:03 | 显示全部楼层 |阅读模式
并置“&” 就是用来进行位和位矢量的连接运算 所谓位和位矢量的连接运算是指将并置操作符右边的内容接在左边的内容之后以形成一个新的位矢量.通常采用并置操作符进行连接的方式很多 : 既可以将两个位连接起来形成一个位矢量 , 也可以将两个位矢量连接起来以形成一个新的位矢量 , 还可以将位矢量和位连接起来形成一个新的矢量。例如: SIGNAL a, b:std_logic; SIGNAL c: std_logic_vector (1 DOWNTO 0); SIGNAL d, e: std_logic_vector (3 DOWNTO 0); SIGNAL f: std_logic_vector (5 DOWNTO 0); SIGNAL g: std_logic_vector (7 DOWN TO 0); c<=a & b; 两个位连接 f <= a & d; 位和一个位矢量连接
 楼主| 起名字最烦了 发表于 2012-7-8 02:03 | 显示全部楼层
问题补充:
process(clk1)
begin
        if clk1'event and clk1 = '1' then
                datacom <= fskcodein & datacom(1);
        end if;
end process;
希望能解释下这段程序,谢谢

并值符号:如果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
 楼主| 起名字最烦了 发表于 2012-7-8 02:04 | 显示全部楼层
& 是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.

联系我们|手机版|欧卡2中国 ( 湘ICP备11020288号-1 )

GMT+8, 2024-11-25 13:29 , Processed in 0.055267 second(s), 6 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表