66_signed.vhd
来自「verilog 语言 可以免费下载的程序」· VHDL 代码 · 共 1,966 行 · 第 1/5 页
VHD
1,966 行
---------------------
function "or" (L: SIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded or operator have different length"
severity error;
else
for i in result'range loop
result(i) := or_table(L(i) , R(i));
end loop;
end if;
return result;
end "or";
---------------------
---------------------
function "or" (L: SIGNED; R: UNSIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded or operator have different length"
severity error;
else
for i in result'range loop
result(i) := or_table(L(i) , R(i));
end loop;
end if;
return result;
end "or";
---------------------
---------------------
function "or" (L: UNSIGNED; R: SIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded or operator have different length"
severity error;
else
for i in result'range loop
result(i) := or_table(L(i) , R(i));
end loop;
end if;
return result;
end "or";
---------------------
---------------------
function "or" (L: UNSIGNED; R: SIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded or operator have different length"
severity error;
else
for i in result'range loop
result(i) := or_table(L(i) , R(i));
end loop;
end if;
return result;
end "or";
---------------------
---------------------
function "or" (L: UNSIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded or operator have different length"
severity error;
else
for i in result'range loop
result(i) := or_table(L(i) , R(i));
end loop;
end if;
return result;
end "or";
---------------------
---------------------
function "or" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded or operator have different length"
severity error;
else
for i in result'range loop
result(i) := or_table(L(i) , R(i));
end loop;
end if;
return result;
end "or";
---------------------
---------------------
function "and" (L: SIGNED; R: SIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: SIGNED; R: SIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: SIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: SIGNED; R: UNSIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: UNSIGNED; R: SIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: UNSIGNED; R: SIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: UNSIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "and" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded and operator have different length"
severity error;
else
for i in result'range loop
result(i) := and_table(L(i) , R(i));
end loop;
end if;
return result;
end "and";
---------------------
---------------------
function "xor" (L: SIGNED; R: SIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: SIGNED; R: SIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: SIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: SIGNED; R: UNSIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: UNSIGNED; R: SIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: UNSIGNED; R: SIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: UNSIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "xor" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded xor operator have different length"
severity error;
else
for i in result'range loop
result(i) := xor_table(L(i) , R(i));
end loop;
end if;
return result;
end "xor";
---------------------
---------------------
function "nor" (L: SIGNED; R: SIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded nor operator have different length"
severity error;
else
for i in result'range loop
result(i) := not_table(or_table(L(i) , R(i)));
end loop;
end if;
return result;
end "nor";
---------------------
---------------------
function "nor" (L: SIGNED; R: SIGNED) return UNSIGNED is
variable result : UNSIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded nor operator have different length"
severity error;
else
for i in result'range loop
result(i) := not_table(or_table(L(i) , R(i)));
end loop;
end if;
return result;
end "nor";
---------------------
---------------------
function "nor" (L: SIGNED; R: UNSIGNED) return SIGNED is
variable result : SIGNED (L'range);
begin
if (L'length /= R'length) then
assert false
report "arguments of overloaded nor operator have different length"
severity error;
else
for i in result'range loop
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?