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 67850

Article: 67850
Subject: Re: Added example VC++ program to download XIlinx FPGAs
From: "Kelvin" <kelvin8157@hotmail.com>
Date: Sun, 21 Mar 2004 18:52:21 +0800
Links: << >>  << T >>  << A >>
Does Leon have a step by step illustration on how to build instruction set,
how to implement, how to write an assembler? it seems V8 is 35K meaning
too tight for a xc2s100...not to mention adding in peripherals...But it is
worth
having a look at it...

Kelvin






"Marc Le Roy" <invalide@invalide.com> wrote in message
news:c3jldt$o98$1@news-reader4.wanadoo.fr...
> Kelvin wrote:
> > Yeah, source code is there...
> > It's a good example to study a microprocessor design.
>
> If you want to do that, have a look to this SPARC V8 processor under GPL
> license :
> http://www.gaisler.com/leonmain.html
>
>
> Marc
>
> --
> Réponse par email http://cerbermail.com/?C9OVeUlzPc
> Answer by email http://cerbermail.com/?C9OVeUlzPc
>



Article: 67851
Subject: Re: Added example VC++ program to download XIlinx FPGAs
From: "Kelvin" <kelvin8157@hotmail.com>
Date: Sun, 21 Mar 2004 19:02:50 +0800
Links: << >>  << T >>  << A >>
wow...that is too complicated...it will take weeks to
study Leon...


"Kelvin" <kelvin8157@hotmail.com> wrote in message
news:c3jqvg$8n4$1@mawar.singnet.com.sg...
> Does Leon have a step by step illustration on how to build instruction
set,
> how to implement, how to write an assembler? it seems V8 is 35K meaning
> too tight for a xc2s100...not to mention adding in peripherals...But it is
> worth
> having a look at it...
>
> Kelvin
>
>
>
>
>
>
> "Marc Le Roy" <invalide@invalide.com> wrote in message
> news:c3jldt$o98$1@news-reader4.wanadoo.fr...
> > Kelvin wrote:
> > > Yeah, source code is there...
> > > It's a good example to study a microprocessor design.
> >
> > If you want to do that, have a look to this SPARC V8 processor under GPL
> > license :
> > http://www.gaisler.com/leonmain.html
> >
> >
> > Marc
> >
> > --
> > Réponse par email http://cerbermail.com/?C9OVeUlzPc
> > Answer by email http://cerbermail.com/?C9OVeUlzPc
> >
>
>



Article: 67852
Subject: Re: duration of reset
From: "valentin tihomirov" <valentin_NOSPAM_NOWORMS@abelectron.com>
Date: Sun, 21 Mar 2004 14:45:18 +0200
Links: << >>  << T >>  << A >>

> A simple fix is to change your boolean declaration to std_logic.

Yes, I bring example in my last post in another branch of this thread
demonstrating that std_logic sets immediately to HIGH as opposed to boolean
register. Another poster in lang.vhdl group proposed that the problem relies
in the fact that std_logic is multivalue signal initializing to 'U'. He
recommended to initialize a signal during declaration:
    signal FINISHED : boolean := true;

.. and this does the trick! That is, the statement that the default values
are for simulation only in VHDL is wrong; synthezier uses them as well.

Seems that Xilinx tools incorrectly extract information about the initial
state of boolean register that should be asserted durig reset and the
internal reset logic incorrectly resets register to False instead of True.



Article: 67853
Subject: How do I read the INIT values in blockRAM?
From: "Kelvin" <kelvin8157@hotmail.com>
Date: Sun, 21 Mar 2004 22:04:25 +0800
Links: << >>  << T >>  << A >>
Hi, there:

These are the contents of my block RAM, in simulator I inject 00~FF into
i_addr on ever negative edge of clock...
How come I got 0000/3530/3031/3130/6632/3030...instead of the numbers I put
in INIT? What is the document
to look for INIT values?

Best Regards,
Kelvin



 RAMB4_S16_S16 ram( .DOA(do_a), .DOB(do_b), .ADDRA(i_addr[7:0]), .CLKA(clk),
.DIA(16'b0),
      .ENA(1'b1), .RSTA(1'b0), .WEA(1'b0), .ADDRB(d_addr[7:0]), .CLKB(~clk),
      .DIB(d_in), .ENB(1'b1), .RSTB(1'b0), .WEB(we_b));
// synthesis attribute INIT_00 of ram is
"81f124203440241473f572fc71f6000a0908070600050403020100f210015000"
// synthesis attribute INIT_01 of ram is
"a2f183f10cf810042401243472f573fc70f01e007efe101f06f81001a3f182f1"
// synthesis attribute INIT_02 of ram is
"00000000000000000000080006fc1004b7f0a8f177f4100100f0100306f41003"
// synthesis attribute INIT_03 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_04 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_05 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_06 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_07 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_08 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_09 of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_0A of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_0B of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_0C of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_0D of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_0E of ram is
"0000000000000000000000000000000000000000000000000000000000000000"
// synthesis attribute INIT_0F of ram is
"0000000000000000000000000000000000000000000000000000000000000000"



Article: 67854
Subject: Re: How do I read the INIT values in blockRAM?
From: "Jim Wu" <jimwu88NOOOSPAM@yahoo.com>
Date: Sun, 21 Mar 2004 14:18:09 GMT
Links: << >>  << T >>  << A >>
For simulation, you need to use "defparam" to intialize the ram. e.g

defparam ram.INIT_00 =
256'h81f124203440241473f572fc71f6000a0908070600050403020100f210015000;

HTH,
Jim
jimwu88NOOOSPAM@yahoo.com (remove capital letters)
http://www.geocities.com/jimwu88/chips


"Kelvin" <kelvin8157@hotmail.com> wrote in message
news:c3k67m$aft$1@mawar.singnet.com.sg...
> Hi, there:
>
> These are the contents of my block RAM, in simulator I inject 00~FF into
> i_addr on ever negative edge of clock...
> How come I got 0000/3530/3031/3130/6632/3030...instead of the numbers I
put
> in INIT? What is the document
> to look for INIT values?
>
> Best Regards,
> Kelvin
>
>
>
>  RAMB4_S16_S16 ram( .DOA(do_a), .DOB(do_b), .ADDRA(i_addr[7:0]),
.CLKA(clk),
> .DIA(16'b0),
>       .ENA(1'b1), .RSTA(1'b0), .WEA(1'b0), .ADDRB(d_addr[7:0]),
.CLKB(~clk),
>       .DIB(d_in), .ENB(1'b1), .RSTB(1'b0), .WEB(we_b));
> // synthesis attribute INIT_00 of ram is
> "81f124203440241473f572fc71f6000a0908070600050403020100f210015000"
> // synthesis attribute INIT_01 of ram is
> "a2f183f10cf810042401243472f573fc70f01e007efe101f06f81001a3f182f1"
> // synthesis attribute INIT_02 of ram is
> "00000000000000000000080006fc1004b7f0a8f177f4100100f0100306f41003"
> // synthesis attribute INIT_03 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_04 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_05 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_06 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_07 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_08 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_09 of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_0A of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_0B of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_0C of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_0D of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_0E of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
> // synthesis attribute INIT_0F of ram is
> "0000000000000000000000000000000000000000000000000000000000000000"
>
>



Article: 67855
Subject: Re: Xilinx map -timing through ise gui
From: Marc Randolph <mrand@my-deja.com>
Date: Sun, 21 Mar 2004 08:25:00 -0600
Links: << >>  << T >>  << A >>
Nahum Barnea wrote:
> Hi.
> How can I run Xilinx map with -timing option through the ise gui ?
> Currently I am using command line, but I wish to use the ise gui.
> 
> ThankX,
> NAHUM

Howdy Nahum,

If it doesn't show up in Map -> Properties, you need to turn on advanced 
mode... which is under Edit -> Preferences -> Processes.  Obvious, ain't 
it? :-)

Have fun,

    Marc

P.S. If you are an experienced command line user, you may find yourself 
disappointed with the flexibility that the GUI provides.  The check 
boxes and help screens are nice, but if any of your input files (either 
.ucf or your real source) change, even if you are just adding a comment, 
the gui will try to re-run everything - not a big deal if your builds 
are 5 minutes, but some of our designs take something on the order of 
half a workday to run through (on a 3.2 GHz machine).

Article: 67856
Subject: Re: std_logic register resets immediately
From: "valentin tihomirov" <valentin_NOSPAM_NOWORMS@abelectron.com>
Date: Sun, 21 Mar 2004 17:20:30 +0200
Links: << >>  << T >>  << A >>
The same problem (internal after-configuration reset to incorrect value)
occures not only to booleans but with integers as well. XST resets integers
to 0 and booleans to false by default, dispite of the asynchronous reset
expressin in VHDL code:

    if RESET = '1' then
        B <= True; -- resets to false
        INT <= 9; -- resets to 0
    elsif CLK ...

In fact, XST extracts default values not from the reset expression but from
signal declaration:
    signal B: boolean:= true; -- resets to True
    signal INT : integer := 9; -- resets to 9




Article: 67857
Subject: XC95108: Problem with state machine reset in ABEL
From: "Martin Maurer" <capiman@clibb.de>
Date: Sun, 21 Mar 2004 17:43:24 +0100
Links: << >>  << T >>  << A >>
Hello,

i have a problem with a reset condition of a state machine i have written in
ABEL.
Source is like the following:

status state_register;

wst, ls1, ls2,... state;        // line is shortened, much more states !

xilinx property 'Initialstate status wst';

status.clk = MY_CLK;

STATE_DIAGRAM status

STATE wst:
    TEST_OUT_1 = 1;
TEST_OUT_1 = 1;
TEST_OUT_1 = 1;



Article: 67858
Subject: XC95288 easy to crack?
From: "vax,3900" <vax3900@yahoo.com>
Date: Sun, 21 Mar 2004 11:52:08 -0500
Links: << >>  << T >>  << A >>
I am developing a small circuit with XC95288 and I am wondering whether it
is easy to read the content out. I guess since CPLDs are just a bunch of
GALs, and GALs are easy to crack, it might be as easy to crack an XC95288.
Am I right? Thank you.

vax, 3900

Article: 67859
Subject: XC95108: Problem with state machine reset in ABEL -> now full posting...
From: "Martin Maurer" <capiman@clibb.de>
Date: Sun, 21 Mar 2004 17:58:56 +0100
Links: << >>  << T >>  << A >>
Again (continued), sending was too early, sorry:

Hello,

i have a problem with a reset condition of a state machine i have written in
ABEL.
Source is like the following (cutted out the relevant parts):

status state_register;

 wst, ls1, ls2, ls3, ls4... state;        // line is shortened, much more
states !

 xilinx property 'Initialstate status wst';

 status.clk = MY_CLK;

 STATE_DIAGRAM status

 STATE wst:
 TEST_OUT_1 = 1;
 TEST_OUT_2 = 0;
 TEST_OUT_3 = 0;
 IF !MY_CMD THEN ls1 ELSE wst;

STATE ls1:
 TEST_OUT_1 = 0;
 TEST_OUT_2 = 1;
 TEST_OUT_3 = 0;
 goto ls2;

STATE ls2:
 TEST_OUT_1 = 0;
 TEST_OUT_2 = 0;
 TEST_OUT_3 = 1;
 goto ls3;

STATE ls3:

 goto ls4;

and so on. Last state jumps back to wst. No other conditions, all like ls3.

So for every state i reach i think i should see one of my testoutputs at
high level, the other two on low level. It sometimes works fine, but often i
get a low level on all of the three line. In my opinion i should not reach
this condition, because in every state one of these output are set and ls3
and upwards, should not touch TEST_OUT_x, so level of ls2 is at the outputs
? Conclusion on my side was, that the state machine is not running. I tried
to manually reset the state machine with status.ar = !RESET, but still no
success. I have redirected a input PIN to an output PIN, feeding some clock
to the input and output is toggling. So i think the chip at all is running,
but my state machine not.

Can someone help me ?

Regards,

          Martin



Article: 67860
Subject: Re: What's the flow V2P SysAce handles the software inside the ACE file
From: ramntn@yahoo.com (ram)
Date: 21 Mar 2004 09:56:32 -0800
Links: << >>  << T >>  << A >>
you might want to look into the documentation of SVF and XSVF
documentation to get to know the details of what Sys ACE is actually
doing.
The xilinx application note : XAPP503 and XAPP058 might help you.
Ram


John Black <black@eed.com> wrote in message news:<405B6D6D.D203F236@eed.com>...
> Hi,
>    I am amazed at how SysAce handles the hardware and software: the ACE
> file should have 2 parts, FPGA programming bit file and the ELF file
> which will be loaded into external memory. I know the trick is JTAG, but
> I want to get a closer look what the underneath flow is. SysAce load the
> bit file to program the FPGA, and then it ask PowerPC to load the ELF to
> the external memory? What exactly happens?
>    I check out the data sheet of SysAce CF, but it does not mention this
> flow. I wonder if somewhere else has this?
> 
> Thanks.

Article: 67861
Subject: 64bit cpu on Xilinx
From: Wolfgang <wp@it-effektiv.de>
Date: Sun, 21 Mar 2004 19:28:08 +0100
Links: << >>  << T >>  << A >>
Ulrich programmed a cpu on a Xilinx and you can download the VHDL code.
http://www.it-effektiv.de/Download2/downloads2.php

GNU License!

Article: 67862
Subject: Re: Spartan-3 DSL-KIT
From: Remis Norvilis <Norvilis.spam@charter.net.fake>
Date: Sun, 21 Mar 2004 13:53:17 -0600
Links: << >>  << T >>  << A >>
And then Jan Losansky wrote:

> Hi,
> 
> did anyone receive a Spartan-3 DSL-KIT from Memec yet?
> 
> Jan

I got mine a week ago. 
-- 

************************************************
To reply, remove >.spam< and >.fake<

Article: 67863
Subject: Re: PCI Development Board
From: Eric Crabill <eric.crabill@xilinx.com>
Date: Sun, 21 Mar 2004 12:28:40 -0800
Links: << >>  << T >>  << A >>

Hi,

There is distinction between what you CAN do, and what you
WANT to do.  You CAN do this.  You do not WANT to.

Most PCI designs will need to use the PCI bus clock as a
global clock input on the FPGA.  I do not think any of
the I/O on the D2E are connected to the global clock inputs
of the FPGA.

That aside, you could probably make it work, but it would
be violating some of the PCI specification (in terms of the
length of the signals from the edge connector to the FPGA).
Would that be an issue?  I don't know.  If I were doing
serious development work, I don't want to find out, either!

Eric

Hendra Gunawan wrote:
> 
> I am sorry to interrupt but if you already have your own
> non-PCI development board, such as D2E board from digilent,
> is it possible that you can just use an adapter to connect
> your board to the PCI slot?
> 
> Thanks!
> Hendra

Article: 67864
Subject: Re: PCI Development Board
From: "Spike" <me.hates:spam@me.net>
Date: Sun, 21 Mar 2004 21:37:00 GMT
Links: << >>  << T >>  << A >>

"Eric Crabill" <eric.crabill@xilinx.com> skrev i meddelandet
news:405B96DC.6E48295A@xilinx.com...
>
> Hi,
>
> For that board, specifically, the smaller chip is a Xilinx
> ISP PROM that contains the bitstream.  There are also some
> jumpers to which you may attach a download cable, which can
> send the bitstream to the device directly.  That is only
> useful for prototyping and debug.
>
> > Also, What kind of PCI cards have you developed with the
> > help of this card?
>
> I've done a number of designs with it; one was a RAMDisk that
> used the SDRAM as storage, another was a video peripheral to
> drive a VGA monitor.  I haven't had any problems with this
> card.  All the designs I did used the v3.0 PCI LogiCORE from
> Xilinx, and I didn't have any problems with that, either.  :)
>
> Eric

What kind of ISP PROM do you use? and is the name of the programmer you use?

How much did it all cost for you?

(I had problems reaching the webite now not sure if the are rebooting the
server or something...)

//SPike



Article: 67865
Subject: Re: Why It Is not Recommended to Infer latches in VLSI Design...
From: "Hendra Gunawan" <u1000393@email.sjsu.edu>
Date: Sun, 21 Mar 2004 13:57:23 -0800
Links: << >>  << T >>  << A >>
"Hal Murray" <hmurray@suespammers.org> wrote in message
news:105qhjp3rdt8g71@corp.supernews.com...
> >                                   And combinational logic is subject to
> >glitches. So, if you are going to use a latch, you have to make sure that
> >during the entire time when the enable of your latch is asserted, the
output
> >from your combinational logic will never have any glitches.
>
> That's not obvious to me.  Am I missing something?
>
> You do have to make sure that glitches don't get connected to clock
> inputs or any other place where they might cause troubles.

All clock inputs have to be synchronous. So, all your clock inputs have to
be driven directly by an oscillator or by dedicated clock
multiplier/divider/shifter such as Xilinx Digital Clock Manager (DCM).

>  But they
> don't cause any trouble going into the data input of the latch.  They
> will flow through the latch so you have to check the other side of the
> latch.

During the entire time when your latch enable is asserted, your
combinational logic is still processing data. During that time, there could
be some glitches at the output of your combinational logic. And when that
happens, the output of your latch will see the glitches, which can cause
subsequent glitches for the rest of the system.



Article: 67866
Subject: Virtex2
From: "Niv" <niv@ntlworld.com>
Date: Sun, 21 Mar 2004 22:01:42 -0000
Links: << >>  << T >>  << A >>
My design, which uses two cascaded DCMs, will only work intermittently;
it seems the DCMs don't always start up.  I've now put two dividers in the
chip, one on
the input clock & one on the DCMs output.  At power up, I see the DCM output
appear
as a nice clock, then either collapse to a '1' or '0', or on the odd
occasion, continue to
work just fine.

The board has 4 off 0.01 uF decouplers on the VCC_AUX supply, but the supply
is common with
the VCC I/O supply.  Is this the reason I'm having problems?, e.g. is the
AUX supply too noisy
& does it need more decoupling?

Any [constructive] suggestions welcome.
TIA, Niv.







Article: 67867
Subject: Re: Virtex2
From: "Kevin Neilson" <kevin_neilson@removethiscomcast.net>
Date: Sun, 21 Mar 2004 22:03:23 GMT
Links: << >>  << T >>  << A >>
Do you have a delayed reset on the second DCM?  You can't let the second DCM
come out of reset until the first is locked.  There is some appnote that
explains this.
-Kevin

"Niv" <niv@ntlworld.com> wrote in message
news:Ogo7c.801$w63.785@newsfe1-win...
> My design, which uses two cascaded DCMs, will only work intermittently;
> it seems the DCMs don't always start up.  I've now put two dividers in the
> chip, one on
> the input clock & one on the DCMs output.  At power up, I see the DCM
output
> appear
> as a nice clock, then either collapse to a '1' or '0', or on the odd
> occasion, continue to
> work just fine.
>
> The board has 4 off 0.01 uF decouplers on the VCC_AUX supply, but the
supply
> is common with
> the VCC I/O supply.  Is this the reason I'm having problems?, e.g. is the
> AUX supply too noisy
> & does it need more decoupling?
>
> Any [constructive] suggestions welcome.
> TIA, Niv.
>
>
>
>
>
>



Article: 67868
Subject: Re: Virtex2
From: "Niv" <niv.nospam.goaway@ntlworld.com>
Date: Sun, 21 Mar 2004 22:11:25 -0000
Links: << >>  << T >>  << A >>
I do have a reset delay circuit, but it does the same for both DCMs.

I'll try & use DCM 1 lock as the reset for the 2nd, is that the sort of
thing?

Niv, (Also a Kevin really, backwards & truncated, in fact).

"Kevin Neilson" <kevin_neilson@removethiscomcast.net> wrote in message
news:Kio7c.54744$1p.903420@attbi_s54...
> Do you have a delayed reset on the second DCM?  You can't let the second
DCM
> come out of reset until the first is locked.  There is some appnote that
> explains this.
> -Kevin



Article: 67869
Subject: Re: Virtex2
From: John Williams <jwilliams@itee.uq.edu.au>
Date: Mon, 22 Mar 2004 08:33:15 +1000
Links: << >>  << T >>  << A >>
Hi Niv,

Niv wrote:
> I do have a reset delay circuit, but it does the same for both DCMs.
> 
> I'll try & use DCM 1 lock as the reset for the 2nd, is that the sort of
> thing?

Yes, cascading the lock/reset pairs works will in the designs I use with 
DCMs.

Regards,

John


Article: 67870
Subject: Re: Virtex2
From: "Kevin Neilson" <kevin_neilson@removethiscomcast.net>
Date: Sun, 21 Mar 2004 22:51:20 GMT
Links: << >>  << T >>  << A >>
Nivek,
you should actually delay the lock to use as the reset for the second; see
Fig. 13 in XAPP132.
-Kevin

"Niv" <niv.nospam.goaway@ntlworld.com> wrote in message
news:5po7c.47$Kn2.16@newsfe1-win...
> I do have a reset delay circuit, but it does the same for both DCMs.
>
> I'll try & use DCM 1 lock as the reset for the 2nd, is that the sort of
> thing?
>
> Niv, (Also a Kevin really, backwards & truncated, in fact).
>
> "Kevin Neilson" <kevin_neilson@removethiscomcast.net> wrote in message
> news:Kio7c.54744$1p.903420@attbi_s54...
> > Do you have a delayed reset on the second DCM?  You can't let the second
> DCM
> > come out of reset until the first is locked.  There is some appnote that
> > explains this.
> > -Kevin
>
>



Article: 67871
Subject: Re: How do I read the INIT values in blockRAM?
From: "Kelvin" <kelvin8157@hotmail.com>
Date: Mon, 22 Mar 2004 07:10:56 +0800
Links: << >>  << T >>  << A >>
Thanks for your reply...I did put the defparam...but the problem is i can't
correlate the numbers
on simulator with the RAM contents...

Kelvin

// synthesis translate_off
defparam ram.INIT_00 =
"81f124203440241473f572fc71f6000a0908070600050403020100f210015000";
defparam ram.INIT_01 =
"a2f183f10cf810042401243472f573fc70f01e007efe101f06f81001a3f182f1";
defparam ram.INIT_02 =
"00000000000000000000080006fc1004b7f0a8f177f4100100f0100306f41003";
defparam ram.INIT_03 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_04 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_05 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_06 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_07 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_08 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_09 =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_0A =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_0B =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_0C =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_0D =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_0E =
"0000000000000000000000000000000000000000000000000000000000000000";
defparam ram.INIT_0F =
"0000000000000000000000000000000000000000000000000000000000000000";
// synthesis translate_on




"Jim Wu" <jimwu88NOOOSPAM@yahoo.com> wrote in message
news:Buh7c.3517$vC.63@nwrdny03.gnilink.net...
> For simulation, you need to use "defparam" to intialize the ram. e.g
>
> defparam ram.INIT_00 =
> 256'h81f124203440241473f572fc71f6000a0908070600050403020100f210015000;
>
> HTH,
> Jim
> jimwu88NOOOSPAM@yahoo.com (remove capital letters)
> http://www.geocities.com/jimwu88/chips
>
>
> "Kelvin" <kelvin8157@hotmail.com> wrote in message
> news:c3k67m$aft$1@mawar.singnet.com.sg...
> > Hi, there:
> >
> > These are the contents of my block RAM, in simulator I inject 00~FF into
> > i_addr on ever negative edge of clock...
> > How come I got 0000/3530/3031/3130/6632/3030...instead of the numbers I
> put
> > in INIT? What is the document
> > to look for INIT values?
> >
> > Best Regards,
> > Kelvin
> >
> >
> >
> >  RAMB4_S16_S16 ram( .DOA(do_a), .DOB(do_b), .ADDRA(i_addr[7:0]),
> .CLKA(clk),
> > .DIA(16'b0),
> >       .ENA(1'b1), .RSTA(1'b0), .WEA(1'b0), .ADDRB(d_addr[7:0]),
> .CLKB(~clk),
> >       .DIB(d_in), .ENB(1'b1), .RSTB(1'b0), .WEB(we_b));
> > // synthesis attribute INIT_00 of ram is
> > "81f124203440241473f572fc71f6000a0908070600050403020100f210015000"
> > // synthesis attribute INIT_01 of ram is
> > "a2f183f10cf810042401243472f573fc70f01e007efe101f06f81001a3f182f1"
> > // synthesis attribute INIT_02 of ram is
> > "00000000000000000000080006fc1004b7f0a8f177f4100100f0100306f41003"
> > // synthesis attribute INIT_03 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_04 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_05 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_06 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_07 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_08 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_09 of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_0A of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_0B of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_0C of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_0D of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_0E of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> > // synthesis attribute INIT_0F of ram is
> > "0000000000000000000000000000000000000000000000000000000000000000"
> >
> >
>
>



Article: 67872
Subject: Re: Why It Is not Recommended to Infer latches in VLSI Design...
From: Jim Granville <no.spam@designtools.co.nz>
Date: Mon, 22 Mar 2004 11:55:43 +1200
Links: << >>  << T >>  << A >>
Hal Murray wrote:
>>Nonsense. I'll grant that it's harder to do a static timing analysis on a
>>latch based design but it's perfectly doable. In an ASIC a latch design
>>has a lot of advantages, 
> 
> 
> Thanks for the long explaination.  I think I've worked with people
> who built latched based CPUs back in the TTL/ECL days but I've
> never worked on that sort of beast.  (I know what a 373 is, but
> my junk box only has 374s.)

  Using a LATCH can have its place: the 373 is a good example, where
they are used by the ship load on ALE signals, and there, a LATCH
extends the access time for the memory.

> 
> My half-wiseass response would have been because the hardware
> prefers FFs and the software (basically) doesn't support latches.
> 
> Has anybody done a classic latched based two-phase clock design
> in a FPGA?  How do you distribute the clock?  What sort of speed
> did it run at, relative to a similar design using FFs.  Can you
> trick the software into doing a sensible timing report?

  I doubt it - but Philips do claim to be shipping a fully ASYNC
80C51 processor, into power critical telecom applications.
http://www.semiconductors.philips.com/pip/P87CL888T_000_2.html

  I believe they had to develop/procure special tools themselves, to 
design this chip.

  -jg



Article: 67873
Subject: Re: Why It Is not Recommended to Infer latches in VLSI Design...
From: hmurray@suespammers.org (Hal Murray)
Date: Mon, 22 Mar 2004 01:44:15 -0000
Links: << >>  << T >>  << A >>
>All clock inputs have to be synchronous. So, all your clock inputs have to
>be driven directly by an oscillator or by dedicated clock
>multiplier/divider/shifter such as Xilinx Digital Clock Manager (DCM).

Nonsense, on two levels.

First, not all clock inputs have to be synchronous.  If that was true
we would only have one clock in the world.  You do have to pay
attention when crossing clock domains.

Even if all your clocks are synchronous, it's possible (but generally
unwise) to have several copies that are skewed from eachother.  The
simple example is clocking on the other edge.  Some software can
handle that case.  You can also shift the clock a tiny bit in order
to trade off setup time for hold time.  (Of course, that skews the
output too so analyzing timings gets more complicated.)

Second, you don't need a direct or dedicated connection to the
clock source.  In many systems, it's common to gate the clock with
an AND/NAND gate fairly high up the clock tree.  The idea is to save
power, both in the logic and in the clock tree, when that chunk of
logic isn't needed.  That's probably a (very) bad idea on today's
FPGAs.  They tend to have a clock-enable input at each local FF
rather than anything higher up the clock tree.  (I think that's
generally a mux rather than a true clock enable.)  But there is
no fundamental requirement for a direct or dedicated connection.
The general rule is that you have to meet setup/hold times, even
when you consider clock skew.

-- 
The suespammers.org mail server is located in California.  So are all my
other mailboxes.  Please do not send unsolicited bulk e-mail or unsolicited
commercial e-mail to my suespammers.org address or any of my other addresses.
These are my opinions, not necessarily my employer's.  I hate spam.


Article: 67874
Subject: Re: Why It Is not Recommended to Infer latches in VLSI Design...
From: Allan Herriman <allan.herriman.hates.spam@ctam.com.au.invalid>
Date: Mon, 22 Mar 2004 13:02:55 +1100
Links: << >>  << T >>  << A >>
On Sat, 20 Mar 2004 11:03:55 +0000 (UTC),
buchty@atbode100.informatik.tu-muenchen.de (Rainer Buchty) wrote:

>In article <slrnc5mm2o.7e0.ldoolitt@recycle.lbl.gov>,
> Larry Doolittle <ldoolitt@recycle.lbl.gov> writes:
>|> Infer flip-flops instead.  In Verilog:
>|> 
>|> reg foo;
>|> always @(posedge clk) foo <= some_expression;
>|> 
>|> or the more verbose and not necessarily more useful:
>|> 
>|> reg foo;
>|> always @(posedge clk or posedge rst) if (rst) begin
>|> 	foo <= 0;
>|> end else begin
>|> 	foo <= some_expression;
>|> end
>|> 
>|> I'll leave the VHDL versions to someone else.
>|> My fingers get tired too quickly.  ;-)
>
>As if
>
>	if rst='0' then
>	        foo<='0';
>	elsif clk'event and clk='1' then 
>	        foo<=some_expression;
>	end if;

Can also be written as: 

	if rst='0' then
	        foo<='0';
	elsif rising_edge(clk) then 
	        foo<=some_expression;
	end if;


>would be any more typing than your Verilog example... (Just for curiosity: Any
>reason for triggering on the reset's rising edge instead of its level?)

This is a quirk of Verilog.

Regards,
Allan.



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