我只是在研究一些VHDL代码,并且对于常量的初始化,它说如下:
constant address: integer := 16#8E#;
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这种定义.有人知道这是如何转换成十进制的普通数字吗?
谢谢!
要进一步扩展(如果您有VHDL LRM,您可以阅读第13.4.2节中的血腥细节),您可以在第#一个之前放置任何基数(在2和16之间),在第二个之后放置指数#.您也可以将_s放入单独的数字集中.
指数始终以10为基数表示,不能为负数.示例(VHDL突出显示有点不尽如人意!)
entity test_numbers is
end entity test_numbers;
architecture a1 of test_numbers is
begin
process is
begin -- process
report integer'image(16#FF#); -- 255
report integer'image(10#1_000#); -- 1000
report integer'image(10#1#e3); -- 1000 another way
report integer'image(2#1#e10); -- 1024
report integer'image(4#100#); -- 16
wait;
end process;
end architecture a1;
Run Code Online (Sandbox Code Playgroud)
报告:
# Loading work.test_numbers(a1)
# ** Note: 255
# Time: 0 ns Iteration: 0 Instance: /test_numbers
# ** Note: 1000
# Time: 0 ns Iteration: 0 Instance: /test_numbers
# ** Note: 1000
# Time: 0 ns Iteration: 0 Instance: /test_numbers
# ** Note: 1024
# Time: 0 ns Iteration: 0 Instance: /test_numbers
# ** Note: 16
# Time: 0 ns Iteration: 0 Instance: /test_numbers
Run Code Online (Sandbox Code Playgroud)