1
0
mirror of https://github.com/myhdl/myhdl.git synced 2024-12-14 07:44:38 +08:00
myhdl/example/manual/pck_myhdl_07.vhd

142 lines
3.4 KiB
VHDL
Raw Normal View History

2010-12-19 18:20:35 +01:00
-- File: pck_myhdl_07.vhd
-- Generated by MyHDL 0.7
-- Date: Sun Dec 19 16:52:33 2010
2008-11-22 22:40:25 +01:00
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
2010-12-19 18:20:35 +01:00
package pck_myhdl_07 is
2008-11-22 22:40:25 +01:00
attribute enum_encoding: string;
function to_std_logic (arg: boolean) return std_logic;
2010-07-02 13:25:24 +02:00
function to_std_logic (arg: integer) return std_logic;
2008-11-22 22:40:25 +01:00
function to_unsigned (arg: boolean; size: natural) return unsigned;
function to_signed (arg: boolean; size: natural) return signed;
function to_integer(arg: boolean) return integer;
function to_integer(arg: std_logic) return integer;
function to_unsigned (arg: std_logic; size: natural) return unsigned;
function to_signed (arg: std_logic; size: natural) return signed;
function to_boolean (arg: std_logic) return boolean;
function to_boolean (arg: unsigned) return boolean;
function to_boolean (arg: signed) return boolean;
function to_boolean (arg: integer) return boolean;
function "-" (arg: unsigned) return signed;
2010-12-19 18:20:35 +01:00
end pck_myhdl_07;
2008-11-22 22:40:25 +01:00
2010-12-19 18:20:35 +01:00
package body pck_myhdl_07 is
2008-11-22 22:40:25 +01:00
function to_std_logic (arg: boolean) return std_logic is
begin
if arg then
return '1';
else
return '0';
end if;
end function to_std_logic;
2010-07-02 13:25:24 +02:00
function to_std_logic (arg: integer) return std_logic is
begin
if arg /= 0 then
return '1';
else
return '0';
end if;
end function to_std_logic;
2008-11-22 22:40:25 +01:00
function to_unsigned (arg: boolean; size: natural) return unsigned is
variable res: unsigned(size-1 downto 0) := (others => '0');
begin
if arg then
res(0):= '1';
end if;
return res;
end function to_unsigned;
function to_signed (arg: boolean; size: natural) return signed is
variable res: signed(size-1 downto 0) := (others => '0');
begin
if arg then
res(0) := '1';
end if;
return res;
end function to_signed;
function to_integer(arg: boolean) return integer is
begin
if arg then
return 1;
else
return 0;
end if;
end function to_integer;
function to_integer(arg: std_logic) return integer is
begin
if arg = '1' then
return 1;
else
return 0;
end if;
end function to_integer;
function to_unsigned (arg: std_logic; size: natural) return unsigned is
variable res: unsigned(size-1 downto 0) := (others => '0');
begin
res(0):= arg;
return res;
end function to_unsigned;
function to_signed (arg: std_logic; size: natural) return signed is
variable res: signed(size-1 downto 0) := (others => '0');
begin
res(0) := arg;
return res;
end function to_signed;
function to_boolean (arg: std_logic) return boolean is
begin
return arg = '1';
end function to_boolean;
function to_boolean (arg: unsigned) return boolean is
begin
return arg /= 0;
end function to_boolean;
function to_boolean (arg: signed) return boolean is
begin
return arg /= 0;
end function to_boolean;
function to_boolean (arg: integer) return boolean is
begin
return arg /= 0;
end function to_boolean;
function "-" (arg: unsigned) return signed is
begin
return - signed(resize(arg, arg'length+1));
end function "-";
2010-12-19 18:20:35 +01:00
end pck_myhdl_07;
2008-11-22 22:40:25 +01:00