vhdl语言里的cnt1:=(others=>✀1✀)是什么意思

请说具体点!谢谢!!
2025-03-26 15:27:11
推荐回答(3个)
回答(1):

CNT1可能是一个多位宽的数据,将其所有位都赋为1

定义了一个多位宽数据:
singal cnt1: std_logic_vector(3 downto 0)
下面对他赋值:

cnt1 <= (others => '0');

表示的意思是
cnt1(3) <= '0';
cnt1(2) <= '0';
cnt1(1) <= '0';
cnt1(0) <= '0';

也可以写成
cnt1 <= "0000";

用OTHERS写法的好处是,不需要介意位宽,如果使用下面的方法,这样如果修改位宽为5位后,“0000”要改成“00000”,

而开始的写法则不用改。

回答(2):

CNT1可能是一个多位宽的数据,将其所有位都赋为1
定义了一个多位宽数据:
singal
cnt1:
std_logic_vector(3
downto
0)
下面对他赋值:
cnt1
<=
(others
=>
'0');
表示的意思是
cnt1(3)
<=
'0';
cnt1(2)
<=
'0';
cnt1(1)
<=
'0';
cnt1(0)
<=
'0';
也可以写成
cnt1
<=
"0000";
用OTHERS写法的好处是,不需要介意位宽,如果使用下面的方法,这样如果修改位宽为5位后,“0000”要改成“00000”,
而开始的写法则不用改。

回答(3):

人家都举例子了, 还怎么具体. 就是给前面的数据赋值的意思. 不管 vector是多少位 singal cnt1: std_logic_vector(n downto 0) 0 到n 全部为0