Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search

Messages from 137450

Article: 137450
Subject: Re: Counter: natural VS std_logic_vector
From: aleksa <aleksaZR@gmail.com>
Date: Sat, 17 Jan 2009 02:02:12 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 17, 2:09=A0am, Mike Treseler <mtrese...@gmail.com> wrote:
> aleksa wrote:
> > Is now everything ok?
>
> NO.
> Reread the previous posts
> "And here is your problem. =A0You're using RD and ADDR asynchronously."
>
> "_DON'T_USE_THE_RD_SIGNAL_AS_AN_ASYNCHRONOUS_SIGNAL_"
>
> > IRQFLAGS : process (cCLKMAIN, RD) begin
>
> RD is not a clock.
> RD is a plain input.
> cCLKMAIN is the only clock.
> to detect a 0, 1 sequence on RD, use a shift register on cCLKMAIN
>
> Good night and good luck.
>
> =A0 =A0 =A0 -- Mike Treseler

RD IS connected to a global clock pin.

RD pulse is 70nS so I can't
test it with a 50nS CLKMAIN, right?

Using Spartan II.

Article: 137451
Subject: Spartan 3E reset problem
From: Digi Suji <digisuji@gmail.com>
Date: Sat, 17 Jan 2009 02:17:51 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi,

I am using a Digilent Basys Board with Xilinx Spartan 3e. I have an
I2C controller configured to FPGA, which reads data from externally
connected I2C EEPROM through the pmod connectors on the basys board. I
am having below problems.

1) FPGA happens to work only once(outputs correct result on the leds)
when configured. When I the reset I2C controller, the functionality
does not repeat instead all leds are lit or off.

2) When I reset(or switch the power off and on) the FPGA and try to re-
configure it, the chip does not work as expected. But when I pull the
EEPROM off the breadboard, reconnect it, reset the FPGA and
reconfigure it, then I get the result, only for the first time.

I tried simulating by giving reset many times in the testbench and
results were as expected
in the simulation. Why am I having issues in the hardware?

Can any one please help?

Thanks.

Article: 137452
Subject: problems in PR;planahead
From: jyoti <jyoti2104@gmail.com>
Date: Sat, 17 Jan 2009 13:06:08 -0800 (PST)
Links: << >>  << T >>  << A >>
 A month back i did successful testing  of partial reconguration. When
i tried to do the same thing again on another computer (as that
computer is no more available to me) , I installed the ise , patch and
all in similar manner. I am able to do the things only till
Exploreahead runs. When i give the command RUN PR ASSEMBLE, it shows
'PR assemble is done' in a second (as contrary to long time taken when
i did it successfully) . It doesnt form the static_full.bit in merge
directory ,  instead some .bitgen are found in PRAtmpdir folder. I
have attached the output file of run PR assmble step with it and
screenshot of the files formed by it in merge directory. Please help
me to find out the problem. I have tried installing everything again
atleast 5-6 times assuming that i might have commited any mistake
during installation. I have done partial reconfigution earlier with
the same setups, so i am not able to find out the reason for this
setup not forming the bitstream. Only .bitgen's are formed,.bit's is
not getting formed.

While doing partial reconfiguration using Planahead , when i run the
command
hdi:: param set -name project.enablePR -bvalue yes
the an error comes saying
parameter "project.enablePR" does not exist. Can it be the reason for
all this.? I am setting the project as PR from file-->set PR project
in planahead.

Article: 137453
Subject: Re: Spartan 3E reset problem
From: Prevailing over Technology <steve.knapp@prevailing-technology.com>
Date: Sat, 17 Jan 2009 13:13:41 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 17, 2:17=A0am, Digi Suji <digis...@gmail.com> wrote:
> Hi,
>
> I am using a Digilent Basys Board with Xilinx Spartan 3e. I have an
> I2C controller configured to FPGA, which reads data from externally
> connected I2C EEPROM through the pmod connectors on the basys board. I
> am having below problems.
>
> 1) FPGA happens to work only once(outputs correct result on the leds)
> when configured. When I the reset I2C controller, the functionality
> does not repeat instead all leds are lit or off.
>
> 2) When I reset(or switch the power off and on) the FPGA and try to re-
> configure it, the chip does not work as expected. But when I pull the
> EEPROM off the breadboard, reconnect it, reset the FPGA and
> reconfigure it, then I get the result, only for the first time.
>
> I tried simulating by giving reset many times in the testbench and
> results were as expected
> in the simulation. Why am I having issues in the hardware?
>
> Can any one please help?
>
> Thanks.

Is the output from the EEPROM driving one of the FPGA's dual-porpose
configuration pins?  Which FPGA configuration mode are you using?

Article: 137454
Subject: Re: Actel IGLOO FPGA has lower power consumption then Xilinx
From: Prevailing over Technology <steve.knapp@prevailing-technology.com>
Date: Sat, 17 Jan 2009 13:40:35 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 15, 9:15=A0pm, "robj" <r...@abc.net> wrote:
> <iko...@alumni.technion.ac.il> wrote in message
>
> news:1188838781.893882.166580@r29g2000hsg.googlegroups.com...
>
> >I was trying to estimate the power consumption of IGLOO AGL600V2 FPGA
> > from Actel with IGLOO power calculator (posted on Actel website). I
> > received very astonishing results.

[... snip ...]

From previous experience, be very skeptical in the answers provided by
the power "estimators".  I haven't tried the Actel estimator so theirs
might be quite good.  The Xilinx estimator, at least is 9.1i, seems to
be overly pessimistic (the acutal power measured in system was about
40% lower).

>
> I'm using IGLOO now for exactly the reasons you state. The main differenc=
e
> vs. SRAM-based FPGAs is the insanely low static current (measured in uW e=
ven
> in the largest device in the family). The dynamic current is on the order=
 of
> 30-40% vs. those guys from what I've seen. As a test I compiled a real
> design into a Xilinx XC2V250 and an AGL600V2. These devices are roughly
> comparable in size. I then and used the vendor tools to estimate power on
> the placed and routed designs. Here's what I got:
>
> XC2V250-4CS144:
>
> Max clock frequency: 119MHz
> Flip flops: 757/3072 (24%)
> 4-input LUTs: 817/3072 (26%)
> Block RAMs: 5/24
> Estimated power: 253mW* (using Xilinx's XPower tool)
> =A0 Static: 32mW
> =A0 Dynamic: 221mW
>
> * Calculated at 80MHz with 12.5% data toggle rate.
>
> AGL600V2-FG144:
>
> Max clock frequency: 33.3MHz
> Flip flops: 870
> Total VersaTiles: 4974/13824 (36%)
> Block RAMs: 5/24
> Estimated power: 66mW** (using Actel's SmartPower tool)
> =A0 Static: 0.067mW (67uW)
> =A0 Dynamic: 66mW
>
> ** Calculated at 80MHz with 12.5% data toggle rate (even though design wo=
n't
> run that fast).
>
> The IGLOO power is ~25% of the Xilinx power at the same frequency, and th=
e
> IGLOO static power is only 67 uW (~1/500th of the Xilinx). Truly amazing.
> You pay the price for that low power, though, as the design runs 3.5x as
> fast in the Xilinx. But for some designs, like the one I'm working on now=
,
> low power is paramount.

Again, be careful comparing power estimators.  Both are just an
approximation of the real design unless you do much more careful
analysis.  It's difficult to compare one broad side of a barn against
another.

That said, Igloo certain has much better static power than many other
FPGAs.

BTW, if you're looking for low power, also check out the SiliconBlue
iCE65 FPGA family.  After years of working with other FPGAs, I thought
I blew a fuse on my bench supply until I realized that the SiliconBlue
FPGA was only using 27 uA of static current (measured with a much
better quality meter).  The built-in analog meter on the supply looked
like it was pegged at 0 current.  The SiliconBlue parts also have very
low dynamic power, much lower than Spartan-3A or Cyclone III parts but
aren't as fast.  All three families use a 1.2V supply.  The
SiliconBlue parts also supposedly support 1.0V, which will reduce
power consumption even more, although I haven't tried that yet.

> As for the Coolrunner-II, the Coolrunner is a 1.8V part vs. 1.2V for the
> IGLOO V2. That's a 50% power difference right off the bat. The rest must
> just be differences in the design and process.

Actually, the dynamic power is related to the square of the voltages
(fCV^2).  If I'm doing my math correctly (a dangerous thing on a
weekend), then the 1.2V parts should use about 44% less dynamic power,
or less than half the dynamic power of the 1.8V part.
(1.2V^2/1.8V^2).

Steve Knapp
Prevailing Technology, Inc.
www.prevailing-technology.com

Article: 137455
Subject: Re: Actel IGLOO FPGA has lower power consumption then Xilinx Coolrunner-II
From: whygee <whygee@yg.yg>
Date: Sun, 18 Jan 2009 00:36:58 +0100
Links: << >>  << T >>  << A >>
hi all,

it's funny to see the Actel crowd pop up :-)

several posters posted :
>>> XC2V250-4CS144:
>>> Max clock frequency: 119MHz
>>> AGL600V2-FG144:
>>> Max clock frequency: 33.3MHz

that's quite possible, and a technology change can
have such results. It reminds me that I once run some
extremely optimised code faster on a P200MMX
than on a P2-233MHz. The architectural details were
completely different, and a port from a 4-LUT to a 3-tile
can have this effect. Silicon technologies have their effect too.

>> They're great for what they do well but just be wary if you need
>> to push the performance (at all).
> 
> Igloo is slow, that's true, but ProAsic3 should be able to handle 66
> Mhz.  My current ProAsic3 is running at 160 Mhz, using vanilla vhdl.
> No special constraints or manually placed logic blocks were needed
> other than specifying clock speed.

My current target is 100MHz with standard A3P,
and I get 105-110MHz with a 6-tile critical datapath.
Remove 2 when a blockRAM is used.
So a 3-input "tile" counts for around 1,5ns, incl. connections,
in average. With that in mind, one can estimate the pipelining effort.

I second what the precedent posters say :
the Actel parts are nice and satisfying for what they do.
Now, for a ultra-high performance project, they won't fit.
Since I've long forgotten my gigaherz dreams, it's not an issue for me,
particularly if it can be powered from a smal(ler) battery.

have fun,

-- 
http://ygdes.com / http://yasep.org

Article: 137456
Subject: Using memory blocks generated by CoreGen
From: Ehsan <ehsan.hosseini@gmail.com>
Date: Sat, 17 Jan 2009 17:09:37 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi guys,

I've written a VHDL entity in which I'm instantiating a distributed
memory block generated by Xilinx CoreGen. Now, I want to use this
entity a number of times in a bigger design. In each instantiation, I
need to initialize the memory with different contents (.coe file).
Since only one .xco file is generated for the dist. memory, I am not
sure if there is a way to do so. Has anybody done the same thing? Can
you suggest me any alternatives?

Article: 137457
Subject: Re: Spartan 3E reset problem
From: Digi Suji <digisuji@gmail.com>
Date: Sun, 18 Jan 2009 00:08:06 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 17, 2:13=A0pm, Prevailing over Technology <steve.kn...@prevailing-
technology.com> wrote:
> On Jan 17, 2:17=A0am, Digi Suji <digis...@gmail.com> wrote:
>
>
>
> > Hi,
>
> > I am using a Digilent Basys Board with Xilinx Spartan 3e. I have an
> > I2C controller configured to FPGA, which reads data from externally
> > connected I2C EEPROM through the pmod connectors on the basys board. I
> > am having below problems.
>
> > 1) FPGA happens to work only once(outputs correct result on the leds)
> > when configured. When I the reset I2C controller, the functionality
> > does not repeat instead all leds are lit or off.
>
> > 2) When I reset(or switch the power off and on) the FPGA and try to re-
> > configure it, the chip does not work as expected. But when I pull the
> > EEPROM off the breadboard, reconnect it, reset the FPGA and
> > reconfigure it, then I get the result, only for the first time.
>
> > I tried simulating by giving reset many times in the testbench and
> > results were as expected
> > in the simulation. Why am I having issues in the hardware?
>
> > Can any one please help?
>
> > Thanks.
>
> Is the output from the EEPROM driving one of the FPGA's dual-porpose
> configuration pins? =A0Which FPGA configuration mode are you using?

Thanks for the response. Yes external I2C EEPROM is driving FPGA's
dual purpose config pins. Will this cause a problem?
I am using spartan 3e TQ-144 FPGA. I could not find mode pins on this
fpga's footprint. How do I set master serial mode config for this
FPGA? Please help if I am wrong.

Thanks

Article: 137458
Subject: Re: Spartan 3E reset problem
From: Digi Suji <digisuji@gmail.com>
Date: Sun, 18 Jan 2009 02:38:14 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 17, 2:13=A0pm, Prevailing over Technology <steve.kn...@prevailing-
technology.com> wrote:
> On Jan 17, 2:17=A0am, Digi Suji <digis...@gmail.com> wrote:
>
>
>
> > Hi,
>
> > I am using a Digilent Basys Board with Xilinx Spartan 3e. I have an
> > I2C controller configured to FPGA, which reads data from externally
> > connected I2C EEPROM through the pmod connectors on the basys board. I
> > am having below problems.
>
> > 1) FPGA happens to work only once(outputs correct result on the leds)
> > when configured. When I the reset I2C controller, the functionality
> > does not repeat instead all leds are lit or off.
>
> > 2) When I reset(or switch the power off and on) the FPGA and try to re-
> > configure it, the chip does not work as expected. But when I pull the
> > EEPROM off the breadboard, reconnect it, reset the FPGA and
> > reconfigure it, then I get the result, only for the first time.
>
> > I tried simulating by giving reset many times in the testbench and
> > results were as expected
> > in the simulation. Why am I having issues in the hardware?
>
> > Can any one please help?
>
> > Thanks.
>
> Is the output from the EEPROM driving one of the FPGA's dual-porpose
> configuration pins? =A0Which FPGA configuration mode are you using?

Yes, output from EEPROM is driving FPGA's dual-purpose pins. I am
using Spartan3E based BASYS board, I cannot set the mode pins of my
choice. I2C master controller is being implemented in FPGA which is
supposed to read data from external I2C EEPROM. Can you tell me what
is the issue?

Thanks.

Article: 137459
Subject: Re: Counter: natural VS std_logic_vector
From: Mike Treseler <mtreseler@gmail.com>
Date: Sun, 18 Jan 2009 08:45:52 -0800
Links: << >>  << T >>  << A >>
aleksa wrote:

> RD pulse is 70nS so I can't
> test it with a 50nS CLKMAIN, right?

http://www.fpga4fun.com/CrossClockDomain2.html

Article: 137460
Subject: Re: Using memory blocks generated by CoreGen
From: Gabor <gabor@alacron.com>
Date: Sun, 18 Jan 2009 10:16:19 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 17, 8:09=A0pm, Ehsan <ehsan.hosse...@gmail.com> wrote:
> Hi guys,
>
> I've written a VHDL entity in which I'm instantiating a distributed
> memory block generated by Xilinx CoreGen. Now, I want to use this
> entity a number of times in a bigger design. In each instantiation, I
> need to initialize the memory with different contents (.coe file).
> Since only one .xco file is generated for the dist. memory, I am not
> sure if there is a way to do so. Has anybody done the same thing? Can
> you suggest me any alternatives?

If you want initialize the contents of each RAM from a
separate .coe file, you will need to run CoreGen for each
distinct .coe file.  So each instance will have a distinct
.xco file as well, even though the settings may be the
same except for the .coe file.

.xco files are in a text format, and you could copy the
first one to a number of other .xco files and then use
a text editor to change the path for the .coe file in
each new .xco file.  You can then add the new .xco files
to your project and "regenerate cores".

Regards,
Gabor

Article: 137461
Subject: Re: Using memory blocks generated by CoreGen
From: "Jan Bruns" <testzugang_janbruns@arcor.de>
Date: Sun, 18 Jan 2009 19:17:16 +0100
Links: << >>  << T >>  << A >>

"Ehsan":
> I've written a VHDL entity in which I'm instantiating a distributed
> memory block generated by Xilinx CoreGen. Now, I want to use this
> entity a number of times in a bigger design. In each instantiation, I
> need to initialize the memory with different contents (.coe file).
> Since only one .xco file is generated for the dist. memory, I am not
> sure if there is a way to do so. Has anybody done the same thing? Can
> you suggest me any alternatives?

No, sorry.

Why do people use coregen to generate logic that xst can directly 
infer from HDL? Any advantage using coregen?

Gruss

Jan Bruns



Article: 137462
Subject: Re: Using memory blocks generated by CoreGen
From: Mike Treseler <mtreseler@gmail.com>
Date: Sun, 18 Jan 2009 11:28:00 -0800
Links: << >>  << T >>  << A >>
Jan Bruns wrote:

> Why do people use coregen to generate logic that xst can directly 
> infer from HDL? 

comp.arch.fpga is historically oriented
toward xilinx cores and demo boards rather than synthesis.
HDL synthesis fans tend to hang in the vhdl and verilog groups.

 > Any advantage using coregen?

Not to me.
If I didn't know vhdl and modelsim,
and if I were in a frantic hurry,
I can imagine giving it a try.

     -- Mike Treseler

Article: 137463
Subject: Re: Actel IGLOO FPGA has lower power consumption then Xilinx Coolrunner-II CPLD?
From: "robj" <robj@abc.net>
Date: Sun, 18 Jan 2009 12:29:56 -0800
Links: << >>  << T >>  << A >>
I stumbled upon SiliconBlue a month or two ago. Had never heard of them 
before. Very impressive power numbers, but the performance looks very 
limited. From looking at some of their reference designs I got the 
impression 15-20MHz would be about the limit for anything reasonably 
complex. Can you give any info on how you're using the parts and what kind 
of performance you're seeing?

The static current numbers are not much different than IGLOO, but IGLOO has 
enough horsepower to do some real processing. Just nothing close to a 
Virtex-5 or Stratix-III.

Rob 



Article: 137464
Subject: VHDL: Process vs concurrent stataments?
From: "p.tucci <a t> gmail.com" <p.tucci@gmail.com>
Date: Sun, 18 Jan 2009 12:59:55 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi all,
I'm a VHDL beginner and I've a trouble with a simple VHDL piece code.

Writing the same thing in two ways that (appearently to me) seem to be
the same,
produce different resuls.

In one case the code is synthesized, in the other it is not.

This is the first piece of code, written as a process.
It is well synthesized:

sample_parallel_data : process(SYS_CK_IN,RESET) begin
		if(RESET = '0') then
			tx_data <= (others => '0');
		elsif(rising_edge(SYS_CK_IN)) then
			if(counter mod (SYS_CK_RATIO/2) = 0) then
				if(last_lr_ck = '1') then
					tx_data <= "0" & DATA_R(IN_WIDTH-1 downto 0) & "0000000";
				else
					tx_data <= "0" & DATA_L(IN_WIDTH-1 downto 0) & "0000000";
				end if;
			else
				tx_data <= tx_data(BITXCH-2 downto 0) & '0'; --shift data left
			end if;
		end if;
	end process;

Now there's the some code, written as a concurrent statement... this
one reports me the error
"Signal tx_data cannot be synthesized, bad synchronous description."

tx_data <=
		(others => '0') when RESET='0'
	else
		'0' & DATA_L(IN_WIDTH-1 downto 0) & "0000000"
		when rising_edge(SYS_CK_IN)
		and (counter mod (SYS_CK_RATIO/2) = 0)
		and last_lr_ck = '1'
	else
		'0' & DATA_R(IN_WIDTH-1 downto 0) & "0000000"
		when rising_edge(SYS_CK_IN)
		and (counter mod (SYS_CK_RATIO/2) = 0)
		and last_lr_ck = '0'
	else
		tx_data(BITXCH-2 downto 0) & '0'
		when rising_edge(SYS_CK_IN);


Why are these piece of code different?
It appear the same thing in my mind !

Thanks all,
Primiano Tucci
--
http://www.primianotucci.com/

Article: 137465
Subject: Re: VHDL: Process vs concurrent stataments?
From: "p.tucci <a t> gmail.com" <p.tucci@gmail.com>
Date: Sun, 18 Jan 2009 13:02:03 -0800 (PST)
Links: << >>  << T >>  << A >>
I forgot some details,

tx_data is a signal
  signal signal tx_data : std_logic_vector(BITXCH-1 downto 0);

DATA_L and DATA_R are two input ports
	DATA_L : in std_logic_vector(IN_WIDTH-1 downto 0);
	DATA_R : in std_logic_vector(IN_WIDTH-1 downto 0);

BITXCH is a constant = 32
IN_WIDTH is a constant = 24

Thanks
Primiano Tucci
--
http://www.primianotucci.com/

Article: 137466
Subject: Re: Using memory blocks generated by CoreGen
From: Jonathan Bromley <jonathan.bromley@MYCOMPANY.com>
Date: Sun, 18 Jan 2009 21:09:52 +0000
Links: << >>  << T >>  << A >>
On Sun, 18 Jan 2009 11:28:00 -0800, Mike Treseler wrote:

>Jan Bruns wrote:
>
>> Why do people use coregen to generate logic that xst can directly 
>> infer from HDL? 
>
>comp.arch.fpga is historically oriented
>toward xilinx cores and demo boards rather than synthesis.
>HDL synthesis fans tend to hang in the vhdl and verilog groups.
>
> > Any advantage using coregen?
>
>Not to me.

I'm an out-and-out HDL fan - I was fighting to get away
from schematics back in 1980ish, when PALASM gave me the
first glimmer of light at the end of the tunnel - but 
there are times when Coregen/Megawizard/you-name-it is
worth its weight in silicon; I'm quite happy to let 
someone else design two-clock FIFOs for me, for example.
And I accept its usefulness for PLLs and suchlike.

But there's no doubt that seeing stuff like magnitude 
comparators in Coregen has a severely unfavourable 
effect on my blood pressure and language.
Let's see now:

HDL:
~~~~
   if A > B then ...

Coregen/MegaWizard/...:
~~~~~~~~~~~~~~~~~~~~~~~
a. Start up wizard.  Go to brew coffee.  It's running
   by the time you return from the kitchen.
b. Choose correct flavour of comparator.  Drink some coffee.
c. Wade through several dialog screens.  Coffee cools.
d. Hit "Finish".  Chew pencil fretfully, consider ordering 
   faster hard disk or even more memory.
e. Inspect output files, which are hard to find among the
   457 other files in the project directory, none of which
   you recall creating and few of which interest you.  
   Locate the sixteen files relating to the comparator, 
   identify the three of those that you really care about.
f. Create instance of comparator in HDL code.  Create 
   otherwise useless comparison-result signal.  Get data 
   types wrong.  Iterate until successful compilation.
g. Remember that the primitives libraries need compiling.
   Start the script (if you can find it); go to brew more coffee.
h. Simulate.  Speculate that preposterous results may be caused
   by swapping the comparator's inputs so that we get < rather
   than > comparison.  Open bottle of something much stronger
   than coffee.
i. Iterate over f,g,h until results not preposterous. 
   Progressively consume contents of bottle.
j. Synthesize, test on bench.  Observe extreme distortion of
   output signals from FPGA and DAC.  Cast suspicion on comparator.
   Speculate that inappropriate choice of signed or unsigned
   arithmetic may be the root cause, but by now the effects of
   the bottle are sufficiently advanced that you can't remember
   the difference.
k. Children and/or partner return from work/college/school and
   greet you fondly.  Scream at them irrationally.
l. Return to (a) and start over.  Iterate until narcolepsis.
-- 
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
jonathan.bromley@MYCOMPANY.com
http://www.MYCOMPANY.com

The contents of this message may contain personal views which 
are not the views of Doulos Ltd., unless specifically stated.

Article: 137467
Subject: Re: Using memory blocks generated by CoreGen
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Sun, 18 Jan 2009 21:20:01 +0000 (UTC)
Links: << >>  << T >>  << A >>
Mike Treseler <mtreseler@gmail.com> wrote:
> Jan Bruns wrote:
 
>> Why do people use coregen to generate logic that xst can directly 
>> infer from HDL? 
 
> comp.arch.fpga is historically oriented
> toward xilinx cores and demo boards rather than synthesis.
> HDL synthesis fans tend to hang in the vhdl and verilog groups.

Some get cross posted, and likely some FPGA questions get
asked only in the comp.lang.* groups.
 
> > Any advantage using coregen?
 
> Not to me.

Not having used coregen recently, it might be that in
some cases it results in more compact or speedier
results.  The more the tools know about what you are
actually trying to do the better the results are likely
to be.  It you don't need every last LUT and nanosecond
then infer directly.  Otherwise, instantiate the results
of coregen into the HDL design.  Or do both and see which
gives better results.

-- glen

Article: 137468
Subject: Re: VHDL: Process vs concurrent stataments?
From: Jonathan Bromley <jonathan.bromley@MYCOMPANY.com>
Date: Sun, 18 Jan 2009 21:21:51 +0000
Links: << >>  << T >>  << A >>
On Sun, 18 Jan 2009 12:59:55 -0800 (PST), p.tucci wrote:

>Writing the same thing in two ways that (appearently to me) seem to be
>the same, produce different resuls.
>
>In one case the code is synthesized, in the other it is not.
>
>This is the first piece of code, written as a process.
>It is well synthesized:

Yes, because it follows the standard synthesis template
that all synth tools understand.

> sample_parallel_data : process(SYS_CK_IN,RESET) begin
>   if(RESET = '0') then
>     tx_data <= (others => '0');
>   elsif(rising_edge(SYS_CK_IN)) then
      [... do interesting things to tx_data...]
>   end if;
>  end process;

>Now there's the some code, written as a concurrent statement... this
>one reports me the error
>"Signal tx_data cannot be synthesized, bad synchronous description."

>tx_data <=
>		(others => '0') when RESET='0'
>	else
>		'0' & DATA_L(IN_WIDTH-1 downto 0) & "0000000"
>		when rising_edge(SYS_CK_IN)
>		and (counter mod (SYS_CK_RATIO/2) = 0)
>		and last_lr_ck = '1'
>	else
>		'0' & DATA_R(IN_WIDTH-1 downto 0) & "0000000"
>		when rising_edge(SYS_CK_IN)
>		and (counter mod (SYS_CK_RATIO/2) = 0)
>		and last_lr_ck = '0'
>	else
>		tx_data(BITXCH-2 downto 0) & '0'
>		when rising_edge(SYS_CK_IN);

I agree with you that the two pieces of code should simulate
in the same way (I haven't checked the details, but it certainly
looks about right).  However, the second example has at least
two problems that would surely cause many synthesis tools to fail:
(1) You have three distinct "else" branches, and EACH BRANCH
    has a clock edge test in it.  Synthesis tools usually expect
    the clock edge test to be at the outermost level of nesting.
(2) In two of those three branches, you have other logic ANDed
    with the clock edge test.  Again this doesn't match the
    synthesisable template, and many (maybe even "all") synth
    tools will reject it.

I'm not promising, but you MAY find that the following form
synthesises OK:

 tx_data <= 
      (others => '0') 
            when RESET='0'
    else
      func(tx_data, DATA_L, DATA_R, last_lr_ck) 
            when rising_edge(SYS_CK_IN);

where "func()" is a function that performs all the 
necessary next-state logic - essentially, the body
of the clocked branch of your first, successful process.

But it's far better to stick to the standard template,
especially in cases like this where there is no benefit
to using a different style.

~~~~~~~~~~~~

Be aware that you'll probably get a better response 
on comp.lang.vhdl for pure VHDL questions like this.
-- 
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
jonathan.bromley@MYCOMPANY.com
http://www.MYCOMPANY.com

The contents of this message may contain personal views which 
are not the views of Doulos Ltd., unless specifically stated.

Article: 137469
Subject: Re: Using memory blocks generated by CoreGen
From: Ehsan <ehsan.hosseini@gmail.com>
Date: Sun, 18 Jan 2009 17:50:48 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 19, 2:16=A0am, Gabor <ga...@alacron.com> wrote:
> On Jan 17, 8:09=A0pm, Ehsan <ehsan.hosse...@gmail.com> wrote:
>
> > Hi guys,
>
> > I've written a VHDL entity in which I'm instantiating a distributed
> > memory block generated by Xilinx CoreGen. Now, I want to use this
> > entity a number of times in a bigger design. In each instantiation, I
> > need to initialize the memory with different contents (.coe file).
> > Since only one .xco file is generated for the dist. memory, I am not
> > sure if there is a way to do so. Has anybody done the same thing? Can
> > you suggest me any alternatives?
>
> If you want initialize the contents of each RAM from a
> separate .coe file, you will need to run CoreGen for each
> distinct .coe file. =A0So each instance will have a distinct
> .xco file as well, even though the settings may be the
> same except for the .coe file.
>
> .xco files are in a text format, and you could copy the
> first one to a number of other .xco files and then use
> a text editor to change the path for the .coe file in
> each new .xco file. =A0You can then add the new .xco files
> to your project and "regenerate cores".
>
> Regards,
> Gabor

"Gabor"

My design has a hierarchy like this:

Module TOP -> Module A -> DistMem

I need to instantiate Module A 16 times in the TOP. If I generated
16 .xco files for DistMem, Does it mean I need to generate 16 "Module
A"s as well?
So, I have a new problem now, how to instantiate Module A in the TOP
module and tell it which .xco (or DistMem component) to be used?
BTW, I'm using VHDL.

Thanks

Article: 137470
Subject: Time to de-assert RAM for changing CLK
From: reganireland@gmail.com
Date: Sun, 18 Jan 2009 18:37:05 -0800 (PST)
Links: << >>  << T >>  << A >>
Hey guys,

I am writing to a RAM at a 40MHz pixel input from a camera, but need
to access it at 25MHz for VGA output. Is it fine to disable the RAM
between storing/accessing and change the clocks and other lines over
then re-assert the enable? Is there a better way to do this?

If it would be fine, for how many clock cycles should I dis-assert the
enable while mux-ing inputs?

Cheers,
Gints

Article: 137471
Subject: Re: Time to de-assert RAM for changing CLK
From: "H. Peter Anvin" <hpa@zytor.com>
Date: Sun, 18 Jan 2009 20:02:33 -0800
Links: << >>  << T >>  << A >>
reganireland@gmail.com wrote:
> Hey guys,
> 
> I am writing to a RAM at a 40MHz pixel input from a camera, but need
> to access it at 25MHz for VGA output. Is it fine to disable the RAM
> between storing/accessing and change the clocks and other lines over
> then re-assert the enable? Is there a better way to do this?
> 
> If it would be fine, for how many clock cycles should I dis-assert the
> enable while mux-ing inputs?
> 

You're not describing the type of RAM, which makes this question rather
hard to answer.

	-hpa

Article: 137472
Subject: Re: Using memory blocks generated by CoreGen
From: Gabor <gabor@alacron.com>
Date: Mon, 19 Jan 2009 07:48:21 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 18, 8:50=A0pm, Ehsan <ehsan.hosse...@gmail.com> wrote:
> On Jan 19, 2:16=A0am, Gabor <ga...@alacron.com> wrote:
>
>
>
> > On Jan 17, 8:09=A0pm, Ehsan <ehsan.hosse...@gmail.com> wrote:
>
> > > Hi guys,
>
> > > I've written a VHDL entity in which I'm instantiating a distributed
> > > memory block generated by Xilinx CoreGen. Now, I want to use this
> > > entity a number of times in a bigger design. In each instantiation, I
> > > need to initialize the memory with different contents (.coe file).
> > > Since only one .xco file is generated for the dist. memory, I am not
> > > sure if there is a way to do so. Has anybody done the same thing? Can
> > > you suggest me any alternatives?
>
> > If you want initialize the contents of each RAM from a
> > separate .coe file, you will need to run CoreGen for each
> > distinct .coe file. =A0So each instance will have a distinct
> > .xco file as well, even though the settings may be the
> > same except for the .coe file.
>
> > .xco files are in a text format, and you could copy the
> > first one to a number of other .xco files and then use
> > a text editor to change the path for the .coe file in
> > each new .xco file. =A0You can then add the new .xco files
> > to your project and "regenerate cores".
>
> > Regards,
> > Gabor
>
> "Gabor"
>
> My design has a hierarchy like this:
>
> Module TOP -> Module A -> DistMem
>
> I need to instantiate Module A 16 times in the TOP. If I generated
> 16 .xco files for DistMem, Does it mean I need to generate 16 "Module
> A"s as well?
> So, I have a new problem now, how to instantiate Module A in the TOP
> module and tell it which .xco (or DistMem component) to be used?
> BTW, I'm using VHDL.
>
> Thanks

I would suggest using generics in your Module A to determine the
version of initialized memory to use.  Then each instantiation
would use the same Module A with a different value for the generic.

Article: 137473
Subject: Re: Time to de-assert RAM for changing CLK
From: Mike Treseler <mtreseler@gmail.com>
Date: Mon, 19 Jan 2009 11:10:08 -0800
Links: << >>  << T >>  << A >>
reganireland@gmail.com wrote:

> I am writing to a RAM at a 40MHz pixel input from a camera, but need
> to access it at 25MHz for VGA output. Is it fine to disable the RAM
> between storing/accessing and change the clocks and other lines over
> then re-assert the enable? Is there a better way to do this?

Run the ram at 40MHz and synchronize the slow process
using a fifo,

or handshakes:
http://www.fpga4fun.com/CrossClockDomain2.html
http://www.fpga4fun.com/CrossClockDomain3.html

Article: 137474
Subject: Re: Actel IGLOO FPGA has lower power consumption then Xilinx
From: Prevailing over Technology <steve.knapp@prevailing-technology.com>
Date: Mon, 19 Jan 2009 11:17:54 -0800 (PST)
Links: << >>  << T >>  << A >>
On Jan 18, 12:29=A0pm, "robj" <r...@abc.net> wrote:
> I stumbled upon SiliconBlue a month or two ago. Had never heard of them
> before. Very impressive power numbers, but the performance looks very
> limited. From looking at some of their reference designs I got the
> impression 15-20MHz would be about the limit for anything reasonably
> complex. Can you give any info on how you're using the parts and what kin=
d
> of performance you're seeing?
>
> The static current numbers are not much different than IGLOO, but IGLOO h=
as
> enough horsepower to do some real processing. Just nothing close to a
> Virtex-5 or Stratix-III.
>
> Rob

Hi Rob,

It doesn't look like that our design is pushing performance on the
iCE65 part.  The design has an E3/T3 interface that operates at either
a 34.368 MHz or 44.736 MHz carrier frequency.  At the carrier
frequency, it's mostly state machines and counters.  The input path is
divided down both to save power and to provide far more timing margin.

The performance/margin also improved with the December release of the
"iCEcube" software.

I can see that the "safe" low-effort operating frequency for the part
is probably 40 MHz and below.  It looks like 40 to 60 MHz takes some
work.  It looks like you can do pipelined or shift-register functions
up to about 80ish MHz.  High frequency is usually the killer for low-
power so I think most low-power applicatons will operate less than
this.  Their 1.0V operating mode likely reduces the performance, but I
haven't tried it yet.  The 1.2V mode already saves us significant
amounts of power.

The great news is that the design operates at about 30-50 uA in low-
power mode (32.768 kiloHertz).

-- Steve Knapp
   Prevailing Technology, Inc.
   www.prevailing-technology.com



Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search