📄 100vhdl+
字号:
function bit_to_int (in1:bit_vector) return integer is
ALIAS v1: BIT_VECTOR(in1'LENGTH-1 DOWNTO 0) IS in1;
variable inpv : bit_vector(in1'LENGTH-1 DOWNTO 0 );
variable SUM: integer := 0;
variable negative :boolean:= false;
begin
inpv := in1;
if v1(v1'length-1) = '1' then
for i in v1'length-1 downto 0 loop
inpv(i) := not inpv(i);
end loop;
lp1:
for i in 0 to v1'length-1 loop
if inpv(i) = '1' THEN
inpv(i) := '0';
else
inpv(i) := '1';
exit lp1;
end if;
end loop;
negative := true;
end if;
for i in v1'length-1 downto 0 loop
if inpv(i) = '1' then
SUM := SUM + 2**i;
end if;
end loop;
if negative then
return (0-SUM);
else
return SUM;
end if;
end bit_to_int;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -