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 72700

Article: 72700
Subject: Re: Impact vs. Linux RedHat Linux
From: Duane Clark <junkmail@junkmail.com>
Date: Sun, 29 Aug 2004 09:41:51 -0700
Links: << >>  << T >>  << A >>
Rudolf Usselmann wrote:
> ...
> If Xilinx could find an alternative to this Wind/U, I think
> they would have an excellent tool flow for Linux (plus fixing
> the paralle port support to something native of course).
> 

Apparently, Xilinx is doing just that, as mentioned a few days ago in 
another thread. Scroll down to message 5 in the thread.
http://tinyurl.com/636ab

-- 
My real email is akamail.com@dclark (or something like that).

Article: 72701
Subject: Re: Counter counting on both clock edges.
From: Andrew Rogers <andrew@_NO_SPAM_rogerstech.co.uk>
Date: Sun, 29 Aug 2004 18:50:57 +0100
Links: << >>  << T >>  << A >>
Thanks for all the suggestions, they are valuable ideas that I will use 
for similar problems.

However, I needed a divide by 2.5 in the end. A divide by 5 is simple 
once you have a divide by 2.5. I wrote the following code:

library IEEE;
use IEEE.std_logic_1164.all;            -- defines std_logic types
use IEEE.std_logic_unsigned.all;

--- Divide by 2.5 counter               ---
entity div2p5 is
   port (
     clk : in  std_logic;
     q   : out std_logic);
end div2p5;

architecture div2p5_arch of div2p5 is
   signal cnt0 : std_logic_vector (2 downto 0) := "000";
   signal cnt1 : std_logic_vector (2 downto 0) := "000";
   signal q0   : std_logic;
   signal q1   : std_logic;

begin

   q <= q0 and q1;

   process (clk)
   begin
     if(clk'event and clk = '0')then
       if(cnt1 = "000") then
         q0   <= '1';
       end if;
       if(cnt1 = "100") then
         cnt0 <= "000";
         q0   <= '0';
       else
         cnt0 <= cnt1 + 1;
       end if;
     end if;
   end process;

   process (clk)
   begin
     if(clk'event and clk = '1')then
       cnt1 <= cnt0;
       if(cnt0 = "010")then
         q1 <= '0';
       elsif(cnt0 = "011")then
         q1 <= '1';
       end if;
     end if;
   end process;

end div2p5_arch;
----------------------------

I needed a 20MHz clock on the Xilinx Spartan3 kit which has a 50MHz crystal.

Regards
Andrew
-- 
Spartan3 configuration JTAG download tool for GNU/Linux available from
http://www.rogerstech.co.uk/xc3sprog/


Article: 72702
Subject: Re: Counter counting on both clock edges.
From: John Smith <user@example.net>
Date: Sun, 29 Aug 2004 22:28:29 +0300
Links: << >>  << T >>  << A >>
Robert Sefton wrote:

> But he could use your 5-stage shift register + inverter if he initialized it
> to "00011". Then delay the shift register output (any stage will work) 1/2
> cycle and OR it with the undelayed output to create a 50% duty cycle /5
> clock.

The shift register gives you a /10 signal, right? I don't see how you 
generate the 50% duty cycle /5 clock from this by delaying 1/2 cycle and 
ORing it with undelayed output? Can you elaborate a bit?

I think Jake's suggestion makes sense, you generate a /10 clock and 
delay it 2.5 cycles (in the faster domain) which corresponds to 2.5/10 = 
1/4 cycle delay in the slower domain. By XORing two clocks with 1/4 
cycle offset you get the double frequency with 50% duty cycle, in this 
case a /5 clock.

-JS-



Article: 72703
Subject: Re: Counter counting on both clock edges.
From: rickman <spamgoeshere4@yahoo.com>
Date: Sun, 29 Aug 2004 16:57:41 -0400
Links: << >>  << T >>  << A >>
Jake Janovetz wrote:
> 
> rickman <spamgoeshere4@yahoo.com> wrote in message news:<4130AEF9.BF3AD39D@yahoo.com>...
> > Since this is a very odd function to be implementing as part of a job, I
> > assume it is a homework assignment.  So I won't give any more
> > details...
> 
> I see this sort of answer a lot on this forum and, while I agree that
> we don't need to be doing someone's homework, do we really need to
> make this sort of statement?  It's condescending and really
> unnecessary.  If you don't want to give details, just leave them out.
> Let's give folks the benefit of the doubt and maybe we won't scare
> people away.

Condescending it may be, but if I don't explain why I am leaving out
details, then he won't be able to correct me if I am wrong.  


-- 

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX

Article: 72704
Subject: Re: Counter counting on both clock edges.
From: rickman <spamgoeshere4@yahoo.com>
Date: Sun, 29 Aug 2004 17:31:48 -0400
Links: << >>  << T >>  << A >>
Logically, this will work.  But you don't need two counters, just one
will do.  Like another someone suggested, this algorithm generates two
waveforms, each a divide by five, with a 2.5 clock phase shift.  The
results are ANDed to produce a waveform which is a divide by 2.5. 
Remove cnt0, make everything a function of cnt1 and you will get the
same results.  

Notice that the result will not be square (50%/50% duty cycle).  I
believe this is what was originally requested.  


Andrew Rogers wrote:
> 
> Thanks for all the suggestions, they are valuable ideas that I will use
> for similar problems.
> 
> However, I needed a divide by 2.5 in the end. A divide by 5 is simple
> once you have a divide by 2.5. I wrote the following code:
> 
> library IEEE;
> use IEEE.std_logic_1164.all;            -- defines std_logic types
> use IEEE.std_logic_unsigned.all;
> 
> --- Divide by 2.5 counter               ---
> entity div2p5 is
>    port (
>      clk : in  std_logic;
>      q   : out std_logic);
> end div2p5;
> 
> architecture div2p5_arch of div2p5 is
>    signal cnt0 : std_logic_vector (2 downto 0) := "000";
>    signal cnt1 : std_logic_vector (2 downto 0) := "000";
>    signal q0   : std_logic;
>    signal q1   : std_logic;
> 
> begin
> 
>    q <= q0 and q1;
> 
>    process (clk)
>    begin
>      if(clk'event and clk = '0')then
>        if(cnt1 = "000") then
>          q0   <= '1';
>        end if;
>        if(cnt1 = "100") then
>          cnt0 <= "000";
>          q0   <= '0';
>        else
>          cnt0 <= cnt1 + 1;
>        end if;
>      end if;
>    end process;
> 
>    process (clk)
>    begin
>      if(clk'event and clk = '1')then
>        cnt1 <= cnt0;
>        if(cnt0 = "010")then
>          q1 <= '0';
>        elsif(cnt0 = "011")then
>          q1 <= '1';
>        end if;
>      end if;
>    end process;
> 
> end div2p5_arch;
> ----------------------------
> 
> I needed a 20MHz clock on the Xilinx Spartan3 kit which has a 50MHz crystal.
> 
> Regards
> Andrew
> --
> Spartan3 configuration JTAG download tool for GNU/Linux available from
> http://www.rogerstech.co.uk/xc3sprog/

-- 

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX

Article: 72705
Subject: Re: EDK core wrapping and include files
From: "Antti Lukats" <antti@case2000.com>
Date: Sun, 29 Aug 2004 14:41:21 -0700
Links: << >>  << T >>  << A >>

"John Williams" <jwilliams@itee.uq.edu.au> wrote in message
news:4131c785$0$27241$61ce578d@news.syd.swiftdsl.com.au...
> Hi Rudi,
>
> Rudolf Usselmann wrote:
>
> > we are wrapping some of our IP Cores for EDK. That way they
> > can be automatically instantiated in to a SoC and easily
> > integrated.
>
> Good plan!  I would love to see a wishbone -> opb bridge to get some of
> that great opencores.org stuff into microblaze projects.

opencores stuff is actually being used in OPB/Microblaze systems at many
places :)

> > However, we seem to have problems with include files. Our
> > cores are written in Verilog, and we don't know how to
> > specify the proper include path for include files. When
> > EDK compiles the IP Core it can not find the include files
> > unless we manually copy them to a local working directory.
> >
> > Does anybody know how to solve this problem ?
>
> Maybe the  .pao (peripheral analyse order) file has something to do with
> it?  It lives in pcores/mycore/data/...  I've only used it for VHDL
> cores, but it probably has a role to play with verilog as well.

the .PAO only specifies the order of compilation, but:

xyz_defines.v

that contains no modules but only defines would not produce any compiled
code and as such will be ignored :(

as much as I understand the all EDK core approuch is built on assumption
that all parameters are propagated from top to bottom. So an include file
with parameters clearly brakes the logic behind EDK cores.

the only working solution is to prevent the EDK to synthesise the core and
rerun synthesis for this single core from shell script (where the approp
path to include dir can be given), optionally a build script could be made
that copies the include file automatically to working dir what is not a good
solution of course

EDK support for verilog has been always a bit behind the VHDL support so
maybe this problem gets and official fix too someday, or maybe some trick
exist already :)

Antti














Article: 72706
Subject: Re: Counter counting on both clock edges.
From: Shalin Sheth <Shalin.Sheth@xilinx.com>
Date: Sun, 29 Aug 2004 17:59:26 -0700
Links: << >>  << T >>  << A >>
Andrew,

To easiest way generate a 20 Mhz clock signal on the Spartan-3 starter 
kit from the 50 Mhz osc would be to use the DCM.

Is there any reason you have not considered that?

Shalin-

Andrew Rogers wrote:
> Thanks for all the suggestions, they are valuable ideas that I will use 
> for similar problems.
> 
> However, I needed a divide by 2.5 in the end. A divide by 5 is simple 
> once you have a divide by 2.5. I wrote the following code:
> 
> library IEEE;
> use IEEE.std_logic_1164.all;            -- defines std_logic types
> use IEEE.std_logic_unsigned.all;
> 
> --- Divide by 2.5 counter               ---
> entity div2p5 is
>   port (
>     clk : in  std_logic;
>     q   : out std_logic);
> end div2p5;
> 
> architecture div2p5_arch of div2p5 is
>   signal cnt0 : std_logic_vector (2 downto 0) := "000";
>   signal cnt1 : std_logic_vector (2 downto 0) := "000";
>   signal q0   : std_logic;
>   signal q1   : std_logic;
> 
> begin
> 
>   q <= q0 and q1;
> 
>   process (clk)
>   begin
>     if(clk'event and clk = '0')then
>       if(cnt1 = "000") then
>         q0   <= '1';
>       end if;
>       if(cnt1 = "100") then
>         cnt0 <= "000";
>         q0   <= '0';
>       else
>         cnt0 <= cnt1 + 1;
>       end if;
>     end if;
>   end process;
> 
>   process (clk)
>   begin
>     if(clk'event and clk = '1')then
>       cnt1 <= cnt0;
>       if(cnt0 = "010")then
>         q1 <= '0';
>       elsif(cnt0 = "011")then
>         q1 <= '1';
>       end if;
>     end if;
>   end process;
> 
> end div2p5_arch;
> ----------------------------
> 
> I needed a 20MHz clock on the Xilinx Spartan3 kit which has a 50MHz 
> crystal.
> 
> Regards
> Andrew


Article: 72707
Subject: Re: Counter counting on both clock edges.
From: "Robert Sefton" <rsefton@abc.net>
Date: Sun, 29 Aug 2004 18:49:15 -0700
Links: << >>  << T >>  << A >>
"John Smith" <user@example.net> wrote in message
news:41322E5D.5010802@example.net...
> Robert Sefton wrote:
>
> > But he could use your 5-stage shift register + inverter if he
initialized it
> > to "00011". Then delay the shift register output (any stage will work)
1/2
> > cycle and OR it with the undelayed output to create a 50% duty cycle /5
> > clock.
>
> The shift register gives you a /10 signal, right? I don't see how you
> generate the 50% duty cycle /5 clock from this by delaying 1/2 cycle and
> ORing it with undelayed output? Can you elaborate a bit?
>
> I think Jake's suggestion makes sense, you generate a /10 clock and
> delay it 2.5 cycles (in the faster domain) which corresponds to 2.5/10 =
> 1/4 cycle delay in the slower domain. By XORing two clocks with 1/4
> cycle offset you get the double frequency with 50% duty cycle, in this
> case a /5 clock.
>
> -JS-

I meant to generate a /5 clock from the shift register with a 40% high duty
cycle. I just realized the inverter in the feedback path needs to be
removed. Anyway, take a 40% duty cycle /5 clock, delay it 1/2 cycle, and OR
it with the undelayed version. You get a /5 clock with 50% duty cycle. You
could also start with a 60% duty cycle /5 clock, delay it 1/2 cycle, and AND
it with the undelayed version and also get a 50% duty cycle clock. Doesn't
matter how you generate the clock (shift register or counter). The 1/2 cycle
delay plus the gate just allows you to fix the duty cycle.



Article: 72708
Subject: Re: Counter counting on both clock edges.
From: Philip Freidin <philip@fliptronics.com>
Date: Mon, 30 Aug 2004 02:04:19 GMT
Links: << >>  << T >>  << A >>
On Sat, 28 Aug 2004 15:33:47 +0100, Andrew Rogers <andrew@_NO_SPAM_rogerstech.co.uk> wrote:
>I'm trying to produce a square wave clock that is a fifth of the 
>frequency of a faster clock. This means that I must use both the falling 
>edge and rising of the clock. XST complains "Signal cnt cannot be 
>synthesized, bad synchronous description.", I have since learned that I 
>can only have one event per process.
>
>How do I produce a counter that counts on both clock edges?
>
>Regards
>Andrew

This comes up often enough, that it is in the FAQ. Although the problem
is stated somewhat differently, getting a square wave from an odd division
of a clock is really the same as dividing the clock by N.5  .

In your case, you want to divide the rising edges of your source clock
by 2.5 (or the combination of rising and falling edges by 5).

   Divide A Clock by N.5   
   http://www.fpga-faq.com/FAQ_Pages/0019_Divide_Clock_By_N_point_5.htm


Philip Freidin


===================
Philip Freidin
philip.freidin@fpga-faq.com
Host for WWW.FPGA-FAQ.COM

Article: 72709
Subject: The Effect of Pin Assginment
From: "Ying Hu" <huying@lastechnologies.com>
Date: Sun, 29 Aug 2004 19:50:54 -0700
Links: << >>  << T >>  << A >>
Hi All,

Currently I am doing with a project which uses 5 Virtex 2 FPGAs(A,B,C,D,E). FPGA E gets data from a PC through the PCI-bus and distributes the data equally to the 5 FPGAs. In each FPGA there are 10 processing units for the incoming data.

Since the 5 FPGAs are carrying out the same logic functions(FPFA E carries one more task --- communicating with PC using PCI-bus). They share the same VHDL source codes and the same UCF files. The only difference among them is the Pin Assignment.

But, surprisingly, the different Pin Assignment create big problems for me.

The clock period constraint was set to 144Mhz (4*36Mhz, the onboard oscillator) initially. After finishing the P&R, FPGA E met this 144Mhz requirement but all other 4 FPGAs failed. It is quite surprising because FPGA E contains more logic and uses more slices than the other 4 FPGAs.

So I reduced the clock period to 108Mhz and redo the P&R for A,B,C,D. This time FPGA B&E passed. But A&C still failed. I had to reduce 2 Processing Units for A&C to make them running at 108MHz.

I am quite new to FPGA and have no idea that why I get such strange results. Please help me and drop me some advice to solve this problem.

Thanks a lot.

Article: 72710
Subject: Re: Floorplanner RPM question
From: Jim Wu <NOSPAM@NOSPAM.COM>
Date: Sun, 29 Aug 2004 23:51:45 -0400
Links: << >>  << T >>  << A >>
> I tried floorplanning some of the lower-level modules, and then saving 
> them into the [module].ucf file, but the higher-level modules (those 
> that instantiate the lower ones :-) didn't seem to pick up on the RPM 
> availability.

Did you include the constraints in [module].ucf when you run ngdbuild on 
higher level modules?

Jim (jimwu88NOOOSPAM@yahoo.com remove NOOOSPAM)
http://www.geocities.com/jimwu88/chips

Article: 72711
Subject: Re: The Effect of Pin Assginment
From: "Martin Euredjian" <0_0_0_0_@pacbell.net>
Date: Mon, 30 Aug 2004 04:43:19 GMT
Links: << >>  << T >>  << A >>
> But, surprisingly, the different Pin Assignment create big problems for
me.
>
> The clock period constraint was set to 144Mhz (4*36Mhz, the onboard
oscillator) initially.

> So I reduced the clock period to 108Mhz
...
> I had to reduce 2 Processing Units for A&C to make them running at 108MHz.


144MHz is not problematic on Virtex2 devices.  108MHz even less.

There are many factors that could contribute to your problem.

First would be how you might be implementing your logic.  You can trash
performance very rapidly by not taking the right approach.  For example,
multipliers can do 180Mhz, but only if you place your logic taking into
consideration routing and use the registerd option.

Second, yes, pin assignment or, more appropriately, floorplanning, has to be
an integral part of the project.  This isn't software, even though it might
look like it.  You have to put the time and effort into the initial planning
stage in order to ensure success.  Here, experience is invaluable.  The
tools are not going to save you from bad planning or the complete lack
thereof.

If your floorplanning is pretty much set in stone (due to your pin
assignments) you can try two approaches to getting more performance.

1- Evaluate your logic to see if you can improve the way modules are
implemented.  You might add FF's in order to allow signals to move from
stage to stage and meet timing.

2- Spend more money and move up to a faster speed grade.

Without real details as to your implementation, it is very difficult to
offer much more than the above.  Oh, yes, "3" would be to hire a capable
consultant to fix the problem for you.  I am not one, so I can say this
without ulterior motives.

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"


> So I reduced the clock period to 108Mhz and redo the P&R for A,B,C,D. This
time FPGA B&E passed. But A&C still failed. I had to reduce 2 Processing
Units for A&C to make them running at 108MHz.
>
> I am quite new to FPGA and have no idea that why I get such strange
results. Please help me and drop me some advice to solve this problem.
>
> Thanks a lot.



Article: 72712
Subject: Re: Problems With Spartan 3 Starter Board
From: "Steven K. Knapp" <steve.knappNO#SPAM@xilinx.com>
Date: Sun, 29 Aug 2004 22:17:37 -0700
Links: << >>  << T >>  << A >>


"Dave" <apple2ebeige@yahoo.com> wrote in message
news:d4aa8e8a.0408271702.3a36adaa@posting.google.com...
> Using the Xilinx-supplied .mcs files I can program the configuration
> PROM and run these reference designs:
>
> "Default Board Test MCS file"
> "Digital Clock PCB monitor"
>
> But, this design:
>
> "MicroBlaze Master System"
>
> results in a non-responsive board.  Anybody have any luck with this?
> Thanks.

The code for MicroBlaze RISC controller in the the MicroBlaze Master System
is stored in the Platform Flash memory device, the same used to configure
the FPGA.  Check to see that jumper JP1 is set correctly.  The JP1 jumper is
in the upper right corner of the board.  Check that the jumper connects the
two left-most pins (positioned away from the right edge of the board).
There is more on page 39 of the manual, also available online at the
following link.
http://www.xilinx.com/bvdocs/userguides/ug130.pdf

When set in the position, the FPGA boots from the Platform Flash, then an
application within the FPGA continues reading additional information from
the serial Platform Flash.  The MicroBlaze Master System converts the serial
data to MicroBlaze instructions and saves them in the on-board SRAM and
executes from there.

CAVEAT:  This is just a hunch, based on the information provided.
---------------------------------
Steven K. Knapp
Applications Manager, Xilinx Inc.
General Products Division
Spartan-3/II/IIE FPGAs
http://www.xilinx.com/spartan3
---------------------------------
Spartan-3:  Make it Your ASIC



Article: 72713
Subject: Re: The Effect of Pin Assginment
From: "Ying Hu" <huying@lastechnologies.com>
Date: Sun, 29 Aug 2004 22:47:20 -0700
Links: << >>  << T >>  << A >>
Thanks Martin for the valuable
advice.

Actually I already made some improvements to the design by
 reducing Level_Of_Logic, adding FFs and giving some attributes.

Since all the 5 FPGAs shares the same design and some of them can
 run at a higher frequency, I think floorplanning is a better choice to
meet the timing requirement.

For the current project, No manual floorplanning is done.
After adding those VHDL files and UCF files, I just let ISE to run automatically.

Frankly speaking, I know nothing about floorplanning. Could anyone recommend any book/tutorial on this topic?

Article: 72714
Subject: Re: 6.1 vs. 6.2 - one more question
From: =?ISO-8859-1?Q?Johan_Bernsp=E5ng?= <xjohbex@xfoix.se>
Date: Mon, 30 Aug 2004 10:22:19 +0200
Links: << >>  << T >>  << A >>
Well, I answered the question myself on friday afternoon.

Yes, I did have timing constraints, and yes the constraints were met.=20
However, a typo in the period of the clock made the constraints a little =

bit too relaxed. I don't know what I was thinking when I calculated that =

number in the first place, but it made the clock period almost 4 times=20
longer than the clock I'm utilizing... Completely my fault, and rather=20
embarrassing..

Anyway, I appreciate the input from all of you, and I'll get back to you =

if I still get a huge difference in system performance when switching=20
from 6.1 to 6.2 with working timing constraints.


Regards
Johan


Brian Philofsky wrote:

>=20
>=20
> Johan Bernsp=E5ng wrote:
>=20
> <snip>
>=20
>>
>> One question is still unanswered though, and I'd really appreciate=20
>> some input on this matter. How come that a system that synthesized=20
>> perfectly fine in ISE 6.1 also does that in ISE 6.2, but with a lower =

>> performance (i.e. much more noise etc)? I have checkes all the coregen=
=20
>> cores that I utilize and they are all the same version. I have also=20
>> checked my own logic, and it seem to synthesize the same way, but=20
>> still the result is so much better using 6.1.
>=20
>=20
>=20
> There are many possible reasons for this but rather than going there=20
> first, I would like to ask the question of whether timing constraints=20
> were provided to the design and if so, were they met?  The reason for=20
> the question is the way the software is designed to work is to look at =

> the timing constraints provided and attempt to meet them.  If they can =

> be easily met, many times the software will give you that result withou=
t=20
> trying to see exactly how fast the device can really go.  This allows=20
> the tools to operate much faster and still deliver the results that wer=
e=20
> requested.  If no timing constraints are provided and a low effort leve=
l=20
> is used (such as that is by default) the tools generally run very fast =

> however do not produce the best possible result since it has nothing it=
=20
> is trying to strive for.  If no timing constraints are provided and a=20
> high effort level is used, the tools will provide a better result=20
> however without constraints being provided, the tools guess at the=20
> tradeoffs to make for timing so it still may not give as good of a=20
> result as if true timing constraints are provided.
>=20
> Now if you are providing timing constraints that were met with a=20
> previous version of software and are not met now, that situation can be=
=20
> more difficult to explain.  In general that should not happen however w=
e=20
> all know that it does from time to time.  The best thing that you can d=
o=20
> if you are in this situation is to contact either your FAE or the Xilin=
x=20
> hotline to have this investigated.  There may be a simple explanation o=
r=20
> there may be a complicated one but generally it is very dependent on th=
e=20
> design that is being run, the device being targeted, how the tools are =

> being run and possibly a list of other factors.  Without this=20
> investigation it would be difficult to fathom a guess at the reason for=
=20
> that.
>=20
>=20
> --  Brian
>=20
>=20
>=20
>>
>> Johan
>>


--=20
-----------------------------------------------
Johan Bernsp=E5ng, xjohbex@xfoix.se
Embedded systems designer
Swedish Defence Research Agency

Please remove the x's in the email address if
replying to me personally.

Article: 72715
Subject: Delay Modelling in TVPACK
From: garg_iitm@yahoo.com (Viv)
Date: 30 Aug 2004 01:51:55 -0700
Links: << >>  << T >>  << A >>
Hi all,
In TVPACK packing tool
http://www.eecg.toronto.edu/~vaughn/vpr/vpr.html
three types of delays are being modelled 
1 block delay (Delay Through a BLE) = 0.1
2 Intracluster net delay = 0.1
3 Intercluster net delay = 1.0
The above values are default values
We can also specify different values. Can someone give me an insight
bout how these values are being assigned and how 'll overall circuit
delay change by changing them.The author just says they got these
values as most suitable by experimentation.
Here is the paper describing TVPACK ->   
http://www.eecg.toronto.edu/~vaughn/papers/fpga99b.pdf

Article: 72716
Subject: Re: how can I simulate the vhdl and verilog mixed design in modelsim?
From: dxslyz@lycos.de (Steven)
Date: 30 Aug 2004 04:32:05 -0700
Links: << >>  << T >>  << A >>
following is the sim script from xapp134, which runs mixed v & V simulation.

Nothing is special. You need compile all files before sim them.

vlib work
vmap work work
vcom -93 brst_cntr.vhd
vcom -93 cslt_cntr.vhd
vcom -93 ki_cntr.vhd
vcom -93 mti_pkg.vhd
vcom -93 rcd_cntr.vhd
vcom -93 ref_cntr.vhd
vlog mt48lc1m16a1.v
vcom -93 sdrmc_state.vhd
vcom -93 sys_int.vhd
vcom -93 sdrm_t.vhd
vcom -93 sdrm.vhd
vlog tb_sdrm.v
vsim work.t_sdrm
view signals structure wave source
source verwave.do
run 3000 ns

Hope it will help.

Steven Yu

Article: 72717
Subject: Re: Floorplanner RPM question
From: Simon <news@gornall.net>
Date: Mon, 30 Aug 2004 11:37:14 GMT
Links: << >>  << T >>  << A >>
Jim Wu wrote:
>> I tried floorplanning some of the lower-level modules, and then saving 
>> them into the [module].ucf file, but the higher-level modules (those 
>> that instantiate the lower ones :-) didn't seem to pick up on the RPM 
>> availability.
> 
> 
> Did you include the constraints in [module].ucf when you run ngdbuild on 
> higher level modules?

Well, I have 'Use RLOC constraints' set in the 'Map properties' 
dialogue, if that's what you mean ?

Just to be clear, I have a layout akin to:

  top.v
  |-top.ucf
  +-middle.v
    |-middle.ucf   <-- contains floorplanner RPM
    +-lower.v
      +-lower.ucf   <-- contains floorplanner RPM

in my Webpack 'Sources in project' box.

I have previously run Synthesize/Implement on 'middle.v' and 'lower.v' 
and then edited the routed floorplan then saved as an RPM. When I then 
run Synthesize/Implement on the 'top.v' module, the RPM's don't appear 
to be being picked up (eg: the carry chains are in different relative 
positions).

Is there something I have to do, so that Webpack will pick up the 
submodule UCF's ? I thought having them in the tree (and hence in the 
project) would be sufficient.

Cheers,
  	Simon.

Article: 72718
Subject: PCI-Core
From: thomas.bartzick@atlanticzeiser.com (Thomas Bartzick)
Date: 30 Aug 2004 05:02:58 -0700
Links: << >>  << T >>  << A >>
Hello to all,

I would like to integrate a buyied (target-)pci-core into an
xilinx-spartan3 fpga (xc3s200-pq208-4). The core is an *.edf.
The core has been originally designed for a virtex-system as you can
see in the ending part of the *.edf:

---<snip!>
  (design (rename pci_core_32target "pci_32_target") (cellRef
pci_core_32target (libraryRef work))
	(property PART (string "xc2v4000bf957-6") (owner "Xilinx"))
---<snap!>

Possibly this is the problem.

The fpga is coupled directly to the pci-bus.
So far, so good.

The situation:
--------------
When I turn power on, some pci devices including mine are no more
recognized by the master and the supply current increases very strong.
This is a hint for concurrent bus-driving. In addition the core does
not seem to answer the configuration requests of the master.

Has anyone an idea, what the cause of this behaviour may be?

NOTE: The mapping-tool reports, that all TBUF-elements are converted
to logic. Datebus-signals seem to be not bidirectional any more after
this.
("Transforming tristate2logic = off" in synthesis and mapping has no
effect!)

Thanks a lot,

T. Bartzick

Article: 72719
Subject: Re: PCI-Core
From: "www.amontec.com" <laurent.gauch@DELETE_CAPSamontec.com>
Date: Mon, 30 Aug 2004 15:03:24 +0200
Links: << >>  << T >>  << A >>
Thomas Bartzick wrote:
> Hello to all,
> 
> I would like to integrate a buyied (target-)pci-core into an
> xilinx-spartan3 fpga (xc3s200-pq208-4). The core is an *.edf.
> The core has been originally designed for a virtex-system as you can
> see in the ending part of the *.edf:
> 
> ---<snip!>
>   (design (rename pci_core_32target "pci_32_target") (cellRef
> pci_core_32target (libraryRef work))
> 	(property PART (string "xc2v4000bf957-6") (owner "Xilinx"))
> ---<snap!>
> 
> Possibly this is the problem.
> 
> The fpga is coupled directly to the pci-bus.
> So far, so good.
> 
> The situation:
> --------------
> When I turn power on, some pci devices including mine are no more
> recognized by the master and the supply current increases very strong.
> This is a hint for concurrent bus-driving. In addition the core does
> not seem to answer the configuration requests of the master.
> 
> Has anyone an idea, what the cause of this behaviour may be?
> 
> NOTE: The mapping-tool reports, that all TBUF-elements are converted
> to logic. Datebus-signals seem to be not bidirectional any more after
> this.
> ("Transforming tristate2logic = off" in synthesis and mapping has no
> effect!)
> 
> Thanks a lot,
> 
> T. Bartzick


Do you have try on an DESKTOP PCI SLOT, or on an custom PCI motherbaord.

If DESKTOP PCI SLOT, your sp3 is 3.3V tolerant only, and the major part 
of the desktop are 5V IO Tolerant. So, you are driving SP3 IO with 5V 
:-) . The way is to use sp2 or drivers between sp3 and pci finger.

Regards,
Laurent Gauch
www.amontec.com

Article: 72720
Subject: Re: Counter counting on both clock edges.
From: Andrew Rogers <andrew@_NO_SPAM_rogerstech.co.uk>
Date: Mon, 30 Aug 2004 14:39:58 +0100
Links: << >>  << T >>  << A >>
Shalin Sheth wrote:
> Andrew,
> 
> To easiest way generate a 20 Mhz clock signal on the Spartan-3 starter 
> kit from the 50 Mhz osc would be to use the DCM.
> 
> Is there any reason you have not considered that?
> 

I didn't know that there is a DCM nor what a DCM is:) Clocking a counter 
on the positive edge and negative edge seemed easy enough at first.

I have just started to learn VHDL and FPGA stuff, self taught so there's 
no course notes (or homework assignemts!). It has been a steep learning 
curve for me. Can anyone recommend any good and free articles to help 
learn VHDL for FPGA?

Thanks
Andrew

-- 
Spartan3 configuration JTAG download tool for GNU/Linux available from
http://www.rogerstech.co.uk/xc3sprog/


Article: 72721
Subject: Re: ISE EDIF export
From: "Brannon King" <bking@starbridgesystems.com>
Date: 30 Aug 2004 11:18:56 EDT
Links: << >>  << T >>  << A >>
You can only export emulation only (using the ngc2edif utility or XST
param). You don't need full export ability for the hardware compiles: you
can use the emulation exportation to cut out the interface declaration and
merge that into your EDIF. Then when you compile the NGC/NGO file from XST
will get merged automatically.


"HDLnewbie" <HDLnewbie.1bsrg6@info@totallychips.com> wrote in message
news:HDLnewbie.1bsrg6@info@totallychips.com...
>
> Hi,
>
> Is it possible to do an edif export with ISE? I searched the
> documentation and can't find an easy solution to this?
>
>
> -- 
> HDLnewbie
> ------------------------------------------------------------------------
> HDLnewbie's Profile: http://www.totallychips.com/forum/member.php?userid=8
> View this thread: http://www.totallychips.com/forum/showthread.php?t=1175
>



Article: 72722
Subject: Re: The Effect of Pin Assginment
From: "MM" <mbmsv@yahoo.com>
Date: Mon, 30 Aug 2004 11:54:52 -0400
Links: << >>  << T >>  << A >>
I think you should start with timing simulation rather than floorplanning.

/Mikhail


"Ying Hu" <huying@lastechnologies.com> wrote in message
news:ee88431.1@webx.sUN8CHnE...
> Thanks Martin for the valuable
> advice.
>
> Actually I already made some improvements to the design by
>  reducing Level_Of_Logic, adding FFs and giving some attributes.
>
> Since all the 5 FPGAs shares the same design and some of them can
>  run at a higher frequency, I think floorplanning is a better choice to
> meet the timing requirement.
>
> For the current project, No manual floorplanning is done.
> After adding those VHDL files and UCF files, I just let ISE to run
automatically.
>
> Frankly speaking, I know nothing about floorplanning. Could anyone
recommend any book/tutorial on this topic?



Article: 72723
Subject: Re: Counter counting on both clock edges.
From: "John_H" <johnhandwork@mail.com>
Date: Mon, 30 Aug 2004 16:16:23 GMT
Links: << >>  << T >>  << A >>
"rickman" <spamgoeshere4@yahoo.com> wrote in message
news:4130AEF9.BF3AD39D@yahoo.com...

[snip]

> The third is to use two registers, but one logic path with a MUX in the
> front to switch registers as required by your function definition.

[snip]

If an FPGA with DDR support is the target, the DDR primitives can be
instantiated directly.  The ability to clock on the rising and falling edges
is built-in without internal logic routing skew issues.

If a CPLD is the target, maybe a different CPLD family would be a way to go;
some Xilinx CPLDs have "clock doubling" built into the flops with the
posedge/negedge triggering.  Not all Xilinx CPLDs have the feature.



Article: 72724
Subject: Re: Counter counting on both clock edges.
From: Shalin Sheth <Shalin.Sheth@xilinx.com>
Date: Mon, 30 Aug 2004 09:47:38 -0700
Links: << >>  << T >>  << A >>
Andrew,

DCM stands for Digital Clock Manager and has many features to generate 
new clocks of various frequencies and phase based on an input clock. 
Using the DCM would be the easiest and preferred solution to your design 
to generate the 20 Mhz clock.

To read more about the DCM check out the DCM Application note at:
http://direct.xilinx.com/bvdocs/appnotes/xapp462.pdf

Cheers,
Shalin-

Andrew Rogers wrote:
> Shalin Sheth wrote:
> 
>> Andrew,
>>
>> To easiest way generate a 20 Mhz clock signal on the Spartan-3 starter 
>> kit from the 50 Mhz osc would be to use the DCM.
>>
>> Is there any reason you have not considered that?
>>
> 
> I didn't know that there is a DCM nor what a DCM is:) Clocking a counter 
> on the positive edge and negative edge seemed easy enough at first.
> 
> I have just started to learn VHDL and FPGA stuff, self taught so there's 
> no course notes (or homework assignemts!). It has been a steep learning 
> curve for me. Can anyone recommend any good and free articles to help 
> learn VHDL for FPGA?
> 
> Thanks
> Andrew
> 




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