Quartus Inference Challenge

Discussion in 'VHDL' started by Tricky, May 19, 2009.

  1. Tricky

    Tricky Guest

    Im trying to replace an altsyncram instatiation with an implied
    version, and I cant figure it out atm - thought Id put it out as a
    little challenge.
    Heres the altsyncram (dual clocked, in and out port width difference):

    alt_ram : altsyncram
    generic map (
    Width_a => 64,
    width_b => 16,

    widthad_a => 7,
    widthad_b => 9

    )
    port map (

    clock0 => clka,
    clock1 => clkb,

    data_a => data_a,
    address_a => std_logic_vector(to_unsigned(addr_a, 7) ),

    address_b => std_logic_vector(to_unsigned(addr_b, 9) ),
    q_b => q_b

    );


    Its easy to infer it when A and B ports are identical widths, bit how
    to do it now there is a width mismatch?
     
    Tricky, May 19, 2009
    #1
    1. Advertising

  2. Tricky

    Jacko Guest

    On May 19, 6:15 pm, Tricky <> wrote:
    > Im trying to replace an altsyncram instatiation with an implied
    > version, and I cant figure it out atm - thought Id put it out as a
    > little challenge.
    > Heres the altsyncram (dual clocked, in and out port width difference):
    >
    > alt_ram : altsyncram
    >   generic map (
    >     Width_a    => 64,
    >     width_b    => 16,
    >
    >     widthad_a  => 7,
    >     widthad_b  => 9
    >
    >   )
    >   port map (
    >
    >     clock0         => clka,
    >     clock1         => clkb,
    >
    >     data_a         => data_a,
    >     address_a      => std_logic_vector(to_unsigned(addr_a, 7) ),
    >
    >     address_b      => std_logic_vector(to_unsigned(addr_b, 9) ),
    >     q_b            => q_b
    >
    >   );
    >
    > Its easy to infer it when A and B ports are identical widths, bit how
    > to do it now there is a width mismatch?


    Try multiplexing a 64 bit output port into 4*16 using two address
    bits. This makes the same port widths.

    cheers jacko
     
    Jacko, May 20, 2009
    #2
    1. Advertising

  3. Tricky

    Tricky Guest

    On 20 May, 16:15, Jacko <> wrote:
    > On May 19, 6:15 pm, Tricky <> wrote:
    >
    >
    >
    > > Im trying to replace an altsyncram instatiation with an implied
    > > version, and I cant figure it out atm - thought Id put it out as a
    > > little challenge.
    > > Heres the altsyncram (dual clocked, in and out port width difference):

    >
    > > alt_ram : altsyncram
    > >   generic map (
    > >     Width_a    => 64,
    > >     width_b    => 16,

    >
    > >     widthad_a  => 7,
    > >     widthad_b  => 9

    >
    > >   )
    > >   port map (

    >
    > >     clock0         => clka,
    > >     clock1         => clkb,

    >
    > >     data_a         => data_a,
    > >     address_a      => std_logic_vector(to_unsigned(addr_a, 7) ),

    >
    > >     address_b      => std_logic_vector(to_unsigned(addr_b, 9) ),
    > >     q_b            => q_b

    >
    > >   );

    >
    > > Its easy to infer it when A and B ports are identical widths, bit how
    > > to do it now there is a width mismatch?

    >
    > Try multiplexing a 64 bit output port into 4*16 using two address
    > bits. This makes the same port widths.
    >
    > cheers jacko


    Yup, I can do that, but its not as efficient as the direct
    instantiation.

    Altera have come back saying they dont support it - I shall put in an
    enhancement request.
     
    Tricky, May 20, 2009
    #3
  4. Tricky wrote:

    > Yup, I can do that, but its not as efficient as the direct
    > instantiation.


    But it is portable.
    Does the instance use zero LUTs for the mux?

    -- Mike Treseler
     
    Mike Treseler, May 20, 2009
    #4
  5. Tricky

    Jacko Guest

    On May 20, 7:18 pm, Mike Treseler <> wrote:
    > Tricky wrote:
    > > Yup, I can do that, but its not as efficient as the direct
    > > instantiation.

    >
    > But it is portable.
    > Does the instance use zero LUTs for the mux?
    >
    >      -- Mike Treseler


    Probly not. Good job he didn't want the write bus smaller width, and
    write before read!

    cheers jacko

    http://nibz.googlecode.com version G-spot
     
    Jacko, May 21, 2009
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Andrew Greensted

    Inference Information in ModelSim

    Andrew Greensted, Feb 16, 2006, in forum: VHDL
    Replies:
    5
    Views:
    593
    Andrew Greensted
    Feb 22, 2006
  2. Thomas Thorsen
    Replies:
    2
    Views:
    1,081
    Mike Treseler
    Apr 11, 2006
  3. =?Utf-8?B?amI=?=

    Description of inference from data adapter

    =?Utf-8?B?amI=?=, Dec 14, 2004, in forum: ASP .Net
    Replies:
    0
    Views:
    300
    =?Utf-8?B?amI=?=
    Dec 14, 2004
  4. Cameron Laird
    Replies:
    7
    Views:
    366
    Andrew Clover
    Jun 21, 2004
  5. Ville Vainio
    Replies:
    2
    Views:
    356
    Shawn Wheatley
    Jul 16, 2004
Loading...

Share This Page