OpenCores
URL https://opencores.org/ocsvn/raytrac/raytrac/trunk

Subversion Repositories raytrac

[/] [raytrac/] [trunk/] [arithpack.vhd] - Diff between revs 77 and 81

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 77 Rev 81
Line 63... Line 63...
 
 
        --! Constante: cuarto de periodo del reloj.
        --! Constante: cuarto de periodo del reloj.
        constant tclk4: time := tclk/4;
        constant tclk4: time := tclk/4;
 
 
        --! Path del directorio donde se encuentra
        --! Path del directorio donde se encuentra
        constant memoryPath: string := "../../../MinGW/MSys/1.0/home/julian/code/testbench/trunk/sqrtdiv/";
        --constant memoryPath: string := "../../../MinGW/MSys/1.0/home/julian/code/testbench/trunk/sqrtdiv/";
        --constant memoryPath: string := "X:/Tesis/Workspace/hw/rt_lib/arith/src/trunk/sqrtdiv/"
        --constant memoryPath: string := "X:/Tesis/Workspace/hw/rt_lib/arith/src/trunk/sqrtdiv/"
 
        constant memoryPath: string := "";
        --! Generacion de Clock y de Reset.
        --! Generacion de Clock y de Reset.
        component clock_gen
        component clock_gen
                generic (tclk : time := tclk);
                generic (tclk : time := tclk);
                port    (clk,rst : out std_logic);
                port    (clk,rst : out std_logic);
        end component;
        end component;
Line 243... Line 243...
                zero                    : out std_logic
                zero                    : out std_logic
        );
        );
        end component;
        end component;
 
 
        --! SqrtDiv Unit::func, func, es una memoria que almacena alguna funci'on en el rango de [1,2). Los valores de la funci'on evaluada en este rango se encuentran almacenados en una memoria ROM que seleccione el desarrollador. 
        --! SqrtDiv Unit::func, func, es una memoria que almacena alguna funci'on en el rango de [1,2). Los valores de la funci'on evaluada en este rango se encuentran almacenados en una memoria ROM que seleccione el desarrollador. 
        component  func
        component  funcsqrt
        generic (
        generic (
                memoryfilepath : string :="X:/Tesis/Workspace/hw/rt_lib/arith/src/trunk/sqrtdiv/memsqrt.mif";
                memoryfilepath : string :="X:/Tesis/Workspace/hw/rt_lib/arith/src/trunk/sqrtdiv/memsqrt.mif";
                awidth : integer := 9;
                awidth : integer := 9;
                qwidth : integer := 18
                qwidth : integer := 18
        );
        );
Line 255... Line 255...
                ad0,ad1 : in std_logic_vector (awidth-1 downto 0) := (others => '0');
                ad0,ad1 : in std_logic_vector (awidth-1 downto 0) := (others => '0');
                clk     : in std_logic;
                clk     : in std_logic;
                q0,q1   : out std_logic_vector(qwidth-1 downto 0)
                q0,q1   : out std_logic_vector(qwidth-1 downto 0)
        );
        );
        end component;
        end component;
 
        --! SqrtDic Unit::func, func, es una memoria que almacena alguna funci'on en el rango de [1,2). Los valores de la funci'on evaluada en este rango se encuentran almacenados en una memoria ROM que seleccione el desarrollador. 
 
        component  funcinvr
 
        generic (
 
                memoryfilepath : string :="X:/Tesis/Workspace/hw/rt_lib/arith/src/trunk/sqrtdiv/meminvr.mif";
 
                awidth : integer := 9;
 
                qwidth : integer := 18
 
        );
 
        port (
 
                ad0     : in std_logic_vector (awidth-1 downto 0) := (others => '0');
 
                clk : in std_logic;
 
                q0      : out std_logic_vector(qwidth-1 downto 0)
 
        );
 
        end component;
        --! SqrtDiv Unit::shifter2xstage, esta unidad funciona tal cual la unidad shifter, pero al doble de la velocidad. El problema es que la entidad entrega dos valores de N: exp es un std_logic_vector la primera mitad entregar'a exp0 y la mitad mas significativa ser'a exp1. 
        --! SqrtDiv Unit::shifter2xstage, esta unidad funciona tal cual la unidad shifter, pero al doble de la velocidad. El problema es que la entidad entrega dos valores de N: exp es un std_logic_vector la primera mitad entregar'a exp0 y la mitad mas significativa ser'a exp1. 
        --! De estos dos valores no signados, el valor que representa a N es el mayor de los 2. As'i mismo ocurre con las mantissas. Si el exp0 es mayor que exp1 se escoge add0 en vez de add1 y viceversa.
        --! De estos dos valores no signados, el valor que representa a N es el mayor de los 2. As'i mismo ocurre con las mantissas. Si el exp0 es mayor que exp1 se escoge add0 en vez de add1 y viceversa.
 
 
        component shifter2xstage is
        component shifter2xstage is
        generic (
        generic (

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.