3/2 with "virtex xcv300"

H

HB

Guest
Hi,

I use a Virtex XCV300
I would like to do : a multi *3 and a div /2 with a clk = 32 MHz.
(I would like to obtain a freq = 48 MHz)

Can you help me !!.
Thanks and regards,

Benoit.
 
HB wrote:
Hi,

I use a Virtex XCV300
I would like to do : a multi *3 and a div /2 with a clk = 32 MHz.
(I would like to obtain a freq = 48 MHz)
So what have you tried so far? Do you have a design that works, but is
too slow, or are you uncertain how to proceed at all? How many signal
bits do you need to work with? Do you need something semi-unusual like
working with serial input and/or output instead of simple parallel
signals?

I would ask whether it's really 32 or 48 MHz you need, but it should be
quite trivial to get this bit of logic to run at 100+ MHz, even if you
use a much cheaper Spartan part instead of a Virtex.

Assuming you're having trouble getting started, a few hints: you can
multiply by 2 by shifting a signal left a bit (e.g. intermediate(16
downto 1) := input) and you can divide by two using a right-shift (same
basic idea in reverse). If you have X and 2X, you can get 3X by adding
them together. Typical designs carry out their work on the rising edge
of a clock. Since your intermediate can be as large as input*3, you'll
want it to be two bits larger than the input. Since the output can be
as large as input*1.5, you want it to be one bit larger than the input.
That might be done as one extra signal wire, or it might be done as the
same number of signals as the input, plus a separate carry signal.

--
The universe is a figment of its own imagination.
 
I need a choice between 2 solutions :

first solution:
I can use a Freq=48MHz to create a 32MHz (multi *2, and div 3).
But the signal for this freq isn't locate at a clock PIN (old card, so I
can't change the PINOUT).
This signal is locate PIN number AA4 in a Virtex XCV300-FG456).
I have some problems to use DLL and BUF.
Is someone could help me (use DLL and/or BUF without dedicated clk pin) !!.

second solution:
I can use a Freq=32MHz to create a 48MHz (multi*3, and div 2).
But it very difficult to have this multi *3 !.

I need a clk with a good precision, and if possible with around 50/50 of
duty cycle.

THANKS LOT for your help. Any suggestion will appreciate.
Regards.

Benoit.

"Jerry Coffin" <jerry.coffin@gmail.com> a écrit dans le message news:
1134445271.734711.205930@g43g2000cwa.googlegroups.com...
HB wrote:
Hi,

I use a Virtex XCV300
I would like to do : a multi *3 and a div /2 with a clk = 32 MHz.
(I would like to obtain a freq = 48 MHz)

So what have you tried so far? Do you have a design that works, but is
too slow, or are you uncertain how to proceed at all? How many signal
bits do you need to work with? Do you need something semi-unusual like
working with serial input and/or output instead of simple parallel
signals?

I would ask whether it's really 32 or 48 MHz you need, but it should be
quite trivial to get this bit of logic to run at 100+ MHz, even if you
use a much cheaper Spartan part instead of a Virtex.

Assuming you're having trouble getting started, a few hints: you can
multiply by 2 by shifting a signal left a bit (e.g. intermediate(16
downto 1) := input) and you can divide by two using a right-shift (same
basic idea in reverse). If you have X and 2X, you can get 3X by adding
them together. Typical designs carry out their work on the rising edge
of a clock. Since your intermediate can be as large as input*3, you'll
want it to be two bits larger than the input. Since the output can be
as large as input*1.5, you want it to be one bit larger than the input.
That might be done as one extra signal wire, or it might be done as the
same number of signals as the input, plus a separate carry signal.

--
The universe is a figment of its own imagination.
 
HB wrote:
Hi,

I use a Virtex XCV300
I would like to do : a multi *3 and a div /2 with a clk = 32 MHz.
(I would like to obtain a freq = 48 MHz)
So what have you tried so far? Do you have a design that works, but is
too slow, or are you uncertain how to proceed at all? How many signal
bits do you need to work with? Do you need something semi-unusual like
working with serial input and/or output instead of simple parallel
signals?

I would ask whether it's really 32 or 48 MHz you need, but it should be
quite trivial to get this bit of logic to run at 100+ MHz, even if you
use a much cheaper Spartan part instead of a Virtex.

Assuming you're having trouble getting started, a few hints: you can
multiply by 2 by shifting a signal left a bit (e.g. intermediate(16
downto 1) := input) and you can divide by two using a right-shift (same
basic idea in reverse). If you have X and 2X, you can get 3X by adding
them together. Typical designs carry out their work on the rising edge
of a clock. Since your intermediate can be as large as input*3, you'll
want it to be two bits larger than the input. Since the output can be
as large as input*1.5, you want it to be one bit larger than the input.
That might be done as one extra signal wire, or it might be done as the
same number of signals as the input, plus a separate carry signal.

--
The universe is a figment of its own imagination.
 

Welcome to EDABoard.com

Sponsor

Back
Top