VHDL语言里的一些概念问题
signalx:std_logic_vector(15downto0);signaly:std_logic_vector(7downto0);请问这里为什么都要用down...
signal x: std_logic_vector(15 downto 0);
signal y: std_logic_vector(7 downto 0);
请问这里为什么都要用downto?x(0 to 15)有什么不一样的吗?
这里x'left=15, x'high=15。这两种属性有什么区别吗?
x <= (y'range => '1', others => '0');
这里的y'range等于多少?
这样的赋值之后,x的值应该是多少?为什么?
答案说x的值为x"00ff"。请问数字前面的x是什么意思? 展开
signal y: std_logic_vector(7 downto 0);
请问这里为什么都要用downto?x(0 to 15)有什么不一样的吗?
这里x'left=15, x'high=15。这两种属性有什么区别吗?
x <= (y'range => '1', others => '0');
这里的y'range等于多少?
这样的赋值之后,x的值应该是多少?为什么?
答案说x的值为x"00ff"。请问数字前面的x是什么意思? 展开
2个回答
展开全部
理论上两种写法都可以 但是几乎都用downto 大家都比较习惯高位在左的写法
不同的写法影响赋值语句和属性 x(1 downto 0) <= "10";和x(0 to 1) <= "01"是一样的
'left得到左边那个值 不管你用downto还是to
'high得到大的那个值 即msb
'range就是声明的那个范围(7 downto 0) 'reverse_range则是(0 to 7)
这样赋值的结果就是x(7 downto 0) <= "11111111"; x(15 downto 8) <= "00000000"; 即x"00ff"
x表示十六进制 x"10",对应的二进制码为: "00010000"
不同的写法影响赋值语句和属性 x(1 downto 0) <= "10";和x(0 to 1) <= "01"是一样的
'left得到左边那个值 不管你用downto还是to
'high得到大的那个值 即msb
'range就是声明的那个范围(7 downto 0) 'reverse_range则是(0 to 7)
这样赋值的结果就是x(7 downto 0) <= "11111111"; x(15 downto 8) <= "00000000"; 即x"00ff"
x表示十六进制 x"10",对应的二进制码为: "00010000"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询