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 64575

Article: 64575
Subject: Re: iMPACT error : Done did not go high.
From: "Jay" <yuhaiwen@hotmail.com>
Date: Thu, 8 Jan 2004 13:38:41 +0800
Links: << >>  << T >>  << A >>
check your init_b and prog_b pin.
make sure they are not pulled down.

"Mois?s" <m_perez_gutierre@hotmail.com>
??????:97f0ebf9.0401071711.1c536775@posting.google.com...
> Hi everybody, I have been trying to configurate the Microblaze
> processor in several boards, I use iMPACT and a JTAG cable to download
> the bistream to the boards, but the process fails. The following is
> the result message :
>
> ---------------------------------------------------------------------
> // *** BATCH CMD : Program -p 2
> PROGRESS_START - Starting Operation.
> Validating chain...
> Boundary-scan chain validated successfully.
> Validating chain...
> Boundary-scan chain validated successfully.
> '2':Programming  device...
> done.
> INFO:iMPACT:579 - '2': Completed downloading bit file to device.
> INFO:iMPACT:580 - '2':Checking done pin ....done.
> '2': Programming terminated, Done did not go high.
> PROGRESS_END - End Operation.
> Elapsed time =      5 sec.
> ---------------------------------------------------------------------
>
>
> Somebody has experimented this error?
>
>  or
>
> Somebody know what are the common causes of this?
>
>
> Thanks in advance



Article: 64576
Subject: Re: DPRAM using the CoreGenerator, VHDL-example
From: "Jay" <yuhaiwen@hotmail.com>
Date: Thu, 8 Jan 2004 14:18:45 +0800
Links: << >>  << T >>  << A >>
When you generate a module with CoreGen, you should instantiate it(not infer
it) in your code to tell the ISE you want to use it.

"Tobias Möglich" <Tobias.Moeglich@gmx.net>
??????:3FFC4BC2.F86BCF11@gmx.net...
> Hello,
> I'm using Xilinx ISE 6.1.
> I'm using the CoreGenerator for designing a dual port RAM (block RAM).
> Is there an example in VHDL how to access the RAM and read the RAM?
> How can I say ISE to use the generated core and not for example
> distributed single port RAM or what ever he want's?
>
> And since I use the CoreGenerator I can say how wide port A and how wide
> port B should be. (I.e : port A: 8 bit; port B: 16 bit).
> ISE doesn't know at all (I suppose) that I want to use my generated core
> where I already defined the width of port A and port B.
> He criticizes it .
>
> Can someone help me?
>
> Tobias Möglich
>



Article: 64577
Subject: Re: DPRAM using the CoreGenerator, VHDL-example
From: Tobias =?iso-8859-1?Q?M=F6glich?= <Tobias.Moeglich@gmx.net>
Date: Thu, 08 Jan 2004 09:23:56 +0100
Links: << >>  << T >>  << A >>
What does this mean in detail ???

Tobias



Jay wrote:

> When you generate a module with CoreGen, you should instantiate it(not infer
> it) in your code to tell the ISE you want to use it.
>
> "Tobias Möglich" <Tobias.Moeglich@gmx.net>
> ??????:3FFC4BC2.F86BCF11@gmx.net...
> > Hello,
> > I'm using Xilinx ISE 6.1.
> > I'm using the CoreGenerator for designing a dual port RAM (block RAM).
> > Is there an example in VHDL how to access the RAM and read the RAM?
> > How can I say ISE to use the generated core and not for example
> > distributed single port RAM or what ever he want's?
> >
> > And since I use the CoreGenerator I can say how wide port A and how wide
> > port B should be. (I.e : port A: 8 bit; port B: 16 bit).
> > ISE doesn't know at all (I suppose) that I want to use my generated core
> > where I already defined the width of port A and port B.
> > He criticizes it .
> >
> > Can someone help me?
> >
> > Tobias Möglich
> >


Article: 64578
Subject: old articels of this newsgroup
From: Tobias =?iso-8859-1?Q?M=F6glich?= <Tobias.Moeglich@gmx.net>
Date: Thu, 08 Jan 2004 09:32:00 +0100
Links: << >>  << T >>  << A >>
Hello.

Does anyone no where to find the older (Sept-Dez 2003) articles of this
newsgroup ???

Greetings Tobias


Article: 64579
Subject: Re: old articels of this newsgroup
From: Nicolas Matringe <matringe.nicolas@numeri-cable.fr>
Date: Thu, 08 Jan 2004 09:37:12 +0100
Links: << >>  << T >>  << A >>
Tobias Möglich a écrit:
> Hello.
> 
> Does anyone no where to find the older (Sept-Dez 2003) articles of this
> newsgroup ???

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&group=comp.arch.fpga 
(with english wrapping)
http://groups.google.com/groups?hl=de&lr=&ie=UTF-8&group=comp.arch.fpga 
(with german wrapping)

-- 
  ____  _  __  ___
|  _  \_)/ _|/ _ \   Adresse de retour invalide: retirez le -
| | | | | (_| |_| |  Invalid return address: remove the -
|_| |_|_|\__|\___/


Article: 64580
Subject: Re: spartan 3 sample
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Thu, 8 Jan 2004 08:51:59 +0000 (UTC)
Links: << >>  << T >>  << A >>
Anjan <anjanr@yahoo.com> wrote:
: Hi
: Has anybody received spartan 3? The loc distributor claims that it
: hasnt been shipped. Any idea on the availability

Look at the latest Spartan III datasheets (ds099-1.pdf). All devices are
still marked as not released yet. From this group I expect that in the next
weeks a batch of engineering samples (probaly S50/200/400/1000 ?) with get
out to the distributors. Only the S50J is available (without
BRAM/Multipliers).

Bye
-- 
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Article: 64581
Subject: submodules with their own constraint files
From: paulw@mmail.ath.cx (Paul)
Date: 8 Jan 2004 01:11:42 -0800
Links: << >>  << T >>  << A >>
Hi

Someone has posted this question earlier but received no response.
But I will try again. Because I think this is an important issue.
People must have either solved this problem by other means.
Or they just enjoy copy and paste the IO pins again and again--as they
get included in the upper modules.

Some IO pins in the submodules can be considered "final" in a design,
since they connect directly to outside the chip.
Why rewirte them again and again and risk the chance of typos.

Why not in the language or in the tools declared them as "final", so
that when they get included in any module -- no matter how many times,
they have their own constaints. This would save a lot of copy and
paste and typos.

Is there any reasons that this shouldn't be done?

Do some people actually enjoy aggregating the IO pins again and again?
Instead of focusing on the design.

Article: 64582
Subject: min propagation delay in xilinx cpld
From: guillerodriguez@terra.es (guille)
Date: 8 Jan 2004 01:16:56 -0800
Links: << >>  << T >>  << A >>
Hi all,

I have a signal that originates at a given device with known timing
with respect to the rising edge of a clock: 2 ns min, 8 ns typ, 20
ns max.

This signal goes through a Xilinx XCR3256XL-10 CPLD and is delayed
by the internal CPLD logic. So the timing after going through the
CPLD relative to clock (clock does not go through the CPLD) would
be like this:

tmin =  2 + min(CPLD prop. delay)
ttyp =  8 + typ(CPLD prop. delay)
tmax = 20 + max(CPLD prop. delay)

The Xilinx datasheet specifies propagation delay in this case and
for this device to be 10 ns maximum in total, including input and
output buffer delays. However no minimum or typical times are given.

I do understand typical times are of limited usefulness but minimum
I'd need to know. Right now I can only take 0 ns as minimum but I
assume there must be a better way.

Does anyone know whether this data is available in any of Xilinx's
white papers or ANs (haven't found anything so far) or available on
demand, or can anyone suggest what's the best way to handle this
case?

Thanks,
Guillermo Rodriguez

Article: 64583
Subject: Quantization levels of received symbol for viterbi decoder
From: inaganti_suni@yahoo.com (sunil)
Date: 8 Jan 2004 01:28:11 -0800
Links: << >>  << T >>  << A >>
i am designing viterbi decoder. i have one problem. i am doing 3bit
quantiser for quantizing the received symbols(noise addedsymbols). but
my problem is from which number to which number i have to take as
quantization level. either from 0 to 7 or -3 to 4. depending on those
the branch metric is varying. which will give minimum metric as best
metric. i am planning to calculate hamming distance.
if any body have the  idea on this please mail me.
thank u.
bye

Article: 64584
Subject: Re: min propagation delay in xilinx cpld
From: "John Adair" <newsreply@loseinspace.co.uk>
Date: Thu, 8 Jan 2004 10:10:27 -0000
Links: << >>  << T >>  << A >>
Generally you won't get minimum times. I have seen many customers fall over
this aspect of CPLDs with their designs failing in the field after years of
product production. Usually the timing of CPLDs change due to ageing,
silicon process changes (usually faster) etc etc.

Best to register signals using a high speed clock to set minimum delays use
rising or falling edges as best suits your design. Alternatively you can
positively skew signal timing by altering pcb trace lengths.This usually
gives a fairly stable result once you have got it sorted but can be a bit of
fiddle as speed down traces depends on loading.

John Adair
Enterpoint Ltd.

This message is the personal opinion of the sender and not that necessarily
that of Enterpoint Ltd.. Readers should make their own evaluation of the
facts. No responsibility for error or inaccuracy is accepted.

"guille" <guillerodriguez@terra.es> wrote in message
news:5d891e95.0401080116.646d069a@posting.google.com...
> Hi all,
>
> I have a signal that originates at a given device with known timing
> with respect to the rising edge of a clock: 2 ns min, 8 ns typ, 20
> ns max.
>
> This signal goes through a Xilinx XCR3256XL-10 CPLD and is delayed
> by the internal CPLD logic. So the timing after going through the
> CPLD relative to clock (clock does not go through the CPLD) would
> be like this:
>
> tmin =  2 + min(CPLD prop. delay)
> ttyp =  8 + typ(CPLD prop. delay)
> tmax = 20 + max(CPLD prop. delay)
>
> The Xilinx datasheet specifies propagation delay in this case and
> for this device to be 10 ns maximum in total, including input and
> output buffer delays. However no minimum or typical times are given.
>
> I do understand typical times are of limited usefulness but minimum
> I'd need to know. Right now I can only take 0 ns as minimum but I
> assume there must be a better way.
>
> Does anyone know whether this data is available in any of Xilinx's
> white papers or ANs (haven't found anything so far) or available on
> demand, or can anyone suggest what's the best way to handle this
> case?
>
> Thanks,
> Guillermo Rodriguez



Article: 64585
Subject: Local constant (VCC & GND) for partial reconfiguration.
From: "Kelvin @ SG" <kelvin8157@hotmail.com>
Date: Thu, 8 Jan 2004 18:48:48 +0800
Links: << >>  << T >>  << A >>
Hi, there:

In the dynamic partial reconfiguration, what is the use of a local constant
(local FAKE_VCC & FAKE_GND) in a
module?

Best Regards,
Kelvin




Article: 64586
Subject: Re: Where i can get the programming sequence of CoolRunner?
From: shang77_03@yahoo.com (chi)
Date: 8 Jan 2004 03:25:46 -0800
Links: << >>  << T >>  << A >>
Peter Alfke <peter@xilinx.com> wrote in message news:<3FFB529B.2EA53AE8@xilinx.com>...
> Chi, we could not get through to your e-mail address.
> Here is what I have been asked to forward to you through the newsgroup:
> 
> "Chi,
> Peter Alfke forwarded your request for help on CoolRunner
> programming through JTAG.  Can you tell me more about what
> you are trying to do ( which parts, what software, cables, etc.
> that you have).  I run the CPLD applications group and either
> someone on my team, the Configurations Solutions team, or the
> hotline can give you a hand.  Tell me more and I can direct the
> solution.
> Jesse Jenkins, Xilinx
> jesse@xilinx.com  "
> 
> 

I need to program XCR3256XL and XC2C64 CPLDs'using an embedded
controller through JTAG Test Access Port. In XAPP058 application note
I have seen CoolRunner Programming Algorithm, but i need more details
like how to initialize the device, how to set the device in ISP mode
etc.,

regards,
Chi

Article: 64587
Subject: Re: Where i can get the programming sequence of CoolRunner?
From: "Amontec Team, Laurent Gauch" <laurent.gauch@amontecDELETEALLCAPS.com>
Date: Thu, 08 Jan 2004 12:54:12 +0100
Links: << >>  << T >>  << A >>
chi wrote:

> Peter Alfke <peter@xilinx.com> wrote in message news:<3FFB529B.2EA53AE8@xilinx.com>...
> 
>>Chi, we could not get through to your e-mail address.
>>Here is what I have been asked to forward to you through the newsgroup:
>>
>>"Chi,
>>Peter Alfke forwarded your request for help on CoolRunner
>>programming through JTAG.  Can you tell me more about what
>>you are trying to do ( which parts, what software, cables, etc.
>>that you have).  I run the CPLD applications group and either
>>someone on my team, the Configurations Solutions team, or the
>>hotline can give you a hand.  Tell me more and I can direct the
>>solution.
>>Jesse Jenkins, Xilinx
>>jesse@xilinx.com  "
>>
>>
> 
> 
> I need to program XCR3256XL and XC2C64 CPLDs'using an embedded
> controller through JTAG Test Access Port. In XAPP058 application note
> I have seen CoolRunner Programming Algorithm, but i need more details
> like how to initialize the device, how to set the device in ISP mode
> etc.,
> 
> regards,
> Chi

ISP mode is enabled by the pin called PORT_EN, just read datasheet.

Laurent

------------ And now a word from our sponsor ---------------------
For a secure high performance FTP using SSL/TLS encryption
upgrade to SurgeFTP
----  See http://netwinsite.com/sponsor/sponsor_surgeftp.htm  ----

Article: 64588
Subject: ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 35 Target of defparam 'lut_vdd.init' does not exist
From: "Kelvin @ SG" <kelvin8157@hotmail.com>
Date: Thu, 8 Jan 2004 22:15:28 +0800
Links: << >>  << T >>  << A >>
Hi, group:

What does this error mean? How may I fix it? I am using a Virtex-2 chip. And
i am mimicing the local
constant tricks the XAPP290 was doing, but somehow it doesn't work.

ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 35 Target of defparam
'lut_vdd.init' does not exist
ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 37 Target of defparam
'lut_gnd.init' does not exist

Best Regards,
Kelvin




In file ../../../src/iq_gen.v
wire vcc_iq, gnd_iq;

LUT1 lut_vdd( .O( gnd_iq ), .I0( vcc_iq ) );
defparam lut_vdd.init = 2'b00;
LUT1 lut_gnd( .O( vcc_iq ), .I0( gnd_iq ) );
defparam lut_gnd.init = 2'b11;




Article: 64589
Subject: Re: Synthesis in VHDL vs. Verilog
From: "B. Joshua Rosen" <bjrosen@polybus.com>
Date: Thu, 08 Jan 2004 09:26:59 -0500
Links: << >>  << T >>  << A >>
On Wed, 07 Jan 2004 10:21:46 -0800, Chris Carlen wrote:

> Greetings:
> 
> I am reading J Bhasker's "Verilog HDL Synthesis" along with "A Verilog 
> Primer" in order to learn not only Verilog, but how to make sure I can 
> model designs in a way that is synthesizable.
> 
> What I have just learned is that the synthesis system (such as if I am 
> using Xilinx ISE Webpack and it's associated synthesis tools) dictates 
> what style must be followed, because one system might be able to 
> synthesize model 'A' and not 'B', whereas another system might be able 
> to synthesize 'B' and not 'A', even though models 'A' and 'B' are 
> functionally equivalent.
> 
> Thus, this leads to the question of how to I learn about what modeling 
> style will be synthesizable for my particular tools?
> 
> The text won't be able to teach me this, since it is just dealing with 
> the problem in general.  Obviously this must be in the tooll 
> documentation, so I would ask:
> 
> Is there good modeling style info in Xilinx tools so that one can learn 
> how to make synthesizable models for Xilinx tools reliably?
> 
> Finally, how to VHDL and Verilog compare in terms of *inherent* 
> synthesizability of models, or does the same problem essentially exist 
> for both?
> 
> Thanks for input.
> 
> Good day!

I've never run into anything that synthesized with Synplify and not with
Precision or vice-versa. Synthesis directives are not standardized so they
aren't generally portable although Precision secretly supports a small
subset of Synplify directives. XST is a different story, there are lot's
of things that didn't work the last time I tried it (I haven't
tried the latest rev so it may have improved). 

Synplify has a good user's guide. If you follow it's rules you won't have
any problems with any decent synthesis tool.


Article: 64590
Subject: Improvement on the modular design methodology...
From: "Kelvin @ SG" <kelvin8157@hotmail.com>
Date: Thu, 8 Jan 2004 23:41:19 +0800
Links: << >>  << T >>  << A >>
When I put some constraints of sub-modules into the top-level UCF file,
(same file as the one previously
I used to synthesize a full fixed chip), the ISE6.1.03 will complain for
errors in NGDBuild...It is better if the
software could take care of this instead of painstakingly modifying the UCF
file in each subdirectory...

Kelvin




Article: 64591
Subject: Re: ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 35 Target of defparam 'lut_vdd.init' does not exist
From: "Kelvin @ SG" <kelvin8157@hotmail.com>
Date: Thu, 8 Jan 2004 23:44:16 +0800
Links: << >>  << T >>  << A >>
Thanks for any response...I fixed this error with "// synthesis attribute
INIT of lut_gnd is 00" to replace defparameter.

However, I don't understand why this INIT used a "8000"? How do I derive
this 8000?

Best Regards,
Kelvin


Solution 1:


For general information on how LUTs are initialized, please see the
information regarding LUTs in the Libraries Guide at:
http://support.xilinx.com/support/library.htm

Verilog Syntax:

module top (O, I0, I1, I2, I3);
input I0, I1, I2, I3;
output O;

LUT4 U1 (.O(O), .I0(I0), .I1(I1), .I2(I2), .I3(I3));
// synthesis attribute INIT of U1 is "8000"
endmodule






















"Kelvin @ SG" <kelvin8157@hotmail.com> wrote in message
news:btjnkq$ice$1@mawar.singnet.com.sg...
> Hi, group:
>
> What does this error mean? How may I fix it? I am using a Virtex-2 chip.
And
> i am mimicing the local
> constant tricks the XAPP290 was doing, but somehow it doesn't work.
>
> ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 35 Target of defparam
> 'lut_vdd.init' does not exist
> ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 37 Target of defparam
> 'lut_gnd.init' does not exist
>
> Best Regards,
> Kelvin
>
>
>
>
> In file ../../../src/iq_gen.v
> wire vcc_iq, gnd_iq;
>
> LUT1 lut_vdd( .O( gnd_iq ), .I0( vcc_iq ) );
> defparam lut_vdd.init = 2'b00;
> LUT1 lut_gnd( .O( vcc_iq ), .I0( gnd_iq ) );
> defparam lut_gnd.init = 2'b11;
>
>
>



Article: 64592
Subject: Dual Port RAM Block RAM using Core Generaot
From: Tobias =?iso-8859-1?Q?M=F6glich?= <Tobias.Moeglich@gmx.net>
Date: Thu, 08 Jan 2004 17:10:38 +0100
Links: << >>  << T >>  << A >>



Hello

I'm using the core generator from Xilinx for installing a true dual port
RAM
But I wonder how I can handle it in the VHDL code ???
Could someone give me an advice??

This is what  Iknow already:
Of course I put a component in the archticture (as I did it in the
example
below)

architecture Behavioral of dpram is
component dpram
 port
 (
 addra: IN std_logic_VECTOR(8 downto 0);
 addrb: IN std_logic_VECTOR(7 downto 0);
 clka: IN std_logic;
 clkb: IN std_logic;
 dina: IN std_logic_VECTOR(7 downto 0);
 dinb: INOUT std_logic_VECTOR(15 downto 0);
 douta: OUT std_logic_VECTOR(7 downto 0);
 doutb: OUT std_logic_VECTOR(15 downto 0);
 ena: IN std_logic;
 enb: IN std_logic;
 wea: IN std_logic;
 web: IN std_logic
 );
end component;

begin
-- Verwendung des cores (instantiation of the core)
dpram_block_1 : dpram -- dpram ist der component_name; dpram_block_1 ist

die Instanz
 port map
  (
  addra => addra,
  addrb => addrb,
  clka => clka,
  clkb => clkb,
  dina => dina,
  dinb => dinb,
  douta => douta,
  doutb => doutb,
  ena => ena,
  enb => enb,
  wea => wea,
  web => web
  );


But how can I say where to store the values in the RAM ???
There must be something possible as described below:
But if I would use this code, I would not know where in the RAM the
values
are stored.

WRITE : process(clkb) -- Daten schreiben ins RAM (data -> ram)
begin
 if rising_edge(clkb) then
  if (cs_DSP = '0' and IORW_DSP = '1') then
-- Polarität prüfen
--   ram(conv_integer(addrb)) <= data_b;
-- von dinb in den Speicher (hoffentlich blockRAM !!)
   dinb <= data_b;-- after 5 ns;
-- von dinb in den Speicher (hoffentlich blockRAM !!)
  else dinb <= (others=>'Z'); --after 3 ns;
  end if;
 end if;
end process;


Do you have any example code??
It would be nice if you could send it to me just to get ahead.


MfG, Tobias Möglich.




Article: 64593
Subject: Re: Generate the first interrupt for MB XMK
From: kiikurin@hotmail.com (Jari)
Date: 8 Jan 2004 08:23:39 -0800
Links: << >>  << T >>  << A >>
Hi Mohan!

Thank you for your answer. It was very helpful. But I have not solved
the problem. I have written int_handler.c code to test the interrupt.
This code is placed in BRAM and there is no XMK. I have also added the
interrupt handler in my .MSS file. Now I can see both timer given
interrupt and interrupt controller given interrupt in Logic Analyzer.
The main function of the int_handler is the same as what I have added
in XMK main.c file. But when I tried to run XMK in SRAM, there is no
interrupt from timer or interrupt controller.

Available BRAM size is so small that XMK do not fit in there. I have
to try somehow to debug what goes wrong...

Any ideas?

Thanks,
Jari



mohan <mohan@xilinx.com> wrote in message news:<3FFC5AE3.DA700D8B@xilinx.com>...
> Jari,
>   Your code looks mostly fine so this could be a hardware problem. Check your MHS file to see if the interrupt pin of MicroBlaze is hooked up to the interrupt controller, and the interrupt controller
> is hooked up to the timer.
> Once you begin to see the interrupts, there are a few small issues 
> that should be fixed before everything works.
> 1) MAX_PROCS should be set to at least 1 more than the number of procs you specify in the table because 
>  there is a default system idle process that needs to be created.
> 2) you don't need to specify the interrupt handler in the MSS file. XMK always goes to the timer interupt handler 
>  in timer_intr.S when an interrupt occurs. After the call to the process_scheduler in that code, you will need to add code to
>  ack/clear the timer interrupt. If you want to avoid assembly language programming, the simplest thing to do is to write 
>  all this new code as a C function and use a single assembly instruction brlid to call this C function. If you want 
>  to handle additional interrupts, you could replace timer_intr.S with your own code to handle the other interrupts and 
>  call the process scheduler as appropriate.
>  All of this has been automated in the upcoming release of our software if you would rather wait for it.
> 3) if you want to modify source code for XMK, please remember to copy the entire directory from  $EDK/sw/ProcessorIPLib/sw_services/xilkernel* to your project directory/sw_services/xilkernel* and do
> not modify the sources
>  in your project directory/<proc_name>/libsrc/xilkernel*
> 4) The value of 100 in the timer setup code could result in too many interrupts. You might want to increase the number of cycles before an interrupt to something bigger, like 0xffff.
> 
> You could also try to run everything from BRAM and see if things work correctly.
> 
> Best wishes,
>   Mohan
> 
> 
> 
> Jari wrote:
> > 
> > Hi!
> > 
> > My question is long, but bare with me. I am using EDK 3.2 and trying
> > to get Microblaze XMK working from external memory. I have bootloader
> > in BRAM, which copies the context of FLASH memory to SRAM memory and
> > then jumps to SRAM. This context includes Xilkernel.elf and two
> > processes: Shell.elf (This is from test/arch/microblaze/Shell.c) and
> > Print.elf, which is simple "Hello World". Here is a snippet of my .MSS
> > file
> > 
> > BEGIN LIBRARY
> >  PARAMETER LIBRARY_NAME = xilkernel
> >  PARAMETER LIBRARY_VER = 1.00.a
> >  PARAMETER MAX_PROCS = 2
> >  PARAMETER CONFIG_PROCESS = true
> >  PARAMETER CONFIG_PROCESS_EXIT = true
> >  PARAMETER CONFIG_PROCESS_KILL = true
> >  PARAMETER CONFIG_PROCESS_SLEEP = true
> >  PARAMETER CONFIG_PROCESS_YIELD = true
> >  PARAMETER THREAD_STACK_SIZE = 0x400
> >  PARAMETER PROCESS_TABLE = ( (0x80806000, 1), (0x8080A000, 2))
> >  PARAMETER SCHED_TYPE = 2
> >  PARAMETER CONFIG_MUTEX = true
> >  PARAMETER CONFIG_SEMA = true
> >  PARAMETER CONFIG_MSGQ = true
> >  PARAMETER CONFIG_THREAD_SUPPORT = true
> >  PARAMETER MSGQ_TABLE = ( (10, 10), (15, 15) )
> > END
> > 
> > Bootloader works correctly and I have 3 .ELF files in SRAM memory. My
> > problem is how to generate the first interrupt to get the first
> > process scheduled. Like said in xilkernel_v1_00_a/src/src/sys/main.c
> > file
> > 
> >  * @file main.c
> >  *
> >  * The main routine, that starts the kernel.
> >  *
> >  * Enables the Interrupts and starts the timer Interrupt.
> >  * Initialises the system by calling sys_init() and loops. On first
> > timer
> >  * interrupt the first process gets scheduled.
> > 
> > From MB_XILKERNEL part the code seems to be incomplete so I have tried
> > to add following lines to main.c file
> > 
> > #ifdef MB_XILKERNEL
> >         /* Enable microblaze interrupts */
> >         microblaze_enable_interrupts();
> > 
> >      /* Start the interrupt controller */
> >         XIntc_mMasterEnable(XPAR_MY_OPB_INTC_BASEADDR);
> > 
> >      /* Set the number of cycles the timer counts before interrupting
> > */
> >         XTmrCtr_mSetLoadReg(XPAR_MY_OPB_TIMER_BASEADDR, 0, 100);
> > 
> >      /* Reset the timer and clear interrupts */
> >         XTmrCtr_mSetControlStatusReg(XPAR_MY_OPB_TIMER_BASEADDR, 0,
> > XTC_CSR_INT_OCCURED_MASK | XTC_CSR_LOAD_MASK);
> > 
> >      /* Enable timer interrupt in the interrupt controller */
> >         XIntc_mEnableIntr(XPAR_MY_OPB_INTC_BASEADDR,
> > XPAR_MY_OPB_TIMER_INTERRUPT_MASK);
> > 
> >      /* Start the timer */
> >         XTmrCtr_mSetControlStatusReg(XPAR_MY_OPB_TIMER_BASEADDR, 0,
> > XTC_CSR_ENABLE_TMR_MASK  | XTC_CSR_ENABLE_INT_MASK |
> >         XTC_CSR_AUTO_RELOAD_MASK | XTC_CSR_DOWN_COUNT_MASK);
> > #endif
> > 
> > I was hoping to set timer to count and give interrupt so I can get the
> > first interrupt. But I am stuck in here, end of main.c file, waiting
> > interrupt to occur.
> > 
> >         while(1) {      /* Keep looping....*/
> >                  print("Hi!\r\n") ;
> >         }
> >         return 0 ;
> > 
> > I have checked every value of these XPAR_... and XTC_... variables and
> > they are ok. I am guessing that I am missing Interrupt routine, like
> > timer_int_handler or something like that. In the same folder where
> > main.c is located there is also timer_intr.S file. If I have
> > understood correctly this should be Microblaze Xilkernel
> > timer_intr_handler? Why it is not working? What am I missing? Am I
> > trying in a wrong way to get an interrupt to occur? Should there be
> > line
> > 
> > PARAMETER INT_HANDLER = timer_intr_handler, INT_PORT = Interrupt
> > 
> > in my .MSS file?
> > 
> > Thanks,
> > Jari

Article: 64594
Subject: Readbackn on Virtex II Pro devices
From: Nick <nc300@imperial.ac.uk>
Date: Thu, 08 Jan 2004 16:50:35 +0000
Links: << >>  << T >>  << A >>
Hi everybosy, 

I was wondering whether the distributed/block selectRAM+ readback
facility can be perfomed on a single block at a time, or does it have
to be performed on all blocks?

Similarly, can the memory configuration read back be performed in
sections or does it have to be done on the whole memory?

Thanks

Nick



Article: 64595
(removed)


Article: 64596
(removed)


Article: 64597
Subject: Re: min propagation delay in xilinx cpld
From: Peter Alfke <peter@xilinx.com>
Date: Thu, 08 Jan 2004 09:05:45 -0800
Links: << >>  << T >>  << A >>
Existing silicon does NOT get slower due to ageing, but newer processes
tend to be faster than old ones. So it is not age that matters, but
rather "date of birth".  Do NOT  worry that your existing board might
loose its speed over time...
Peter Alfke, Xilinx
===============

John Adair wrote:
> 
> Generally you won't get minimum times. I have seen many customers fall over
> this aspect of CPLDs with their designs failing in the field after years of
> product production. Usually the timing of CPLDs change due to ageing,
> silicon process changes (usually faster) etc etc.
> 
> Best to register signals using a high speed clock to set minimum delays use
> rising or falling edges as best suits your design. Alternatively you can
> positively skew signal timing by altering pcb trace lengths.This usually
> gives a fairly stable result once you have got it sorted but can be a bit of
> fiddle as speed down traces depends on loading.
> 
> John Adair
> Enterpoint Ltd.
> 
> This message is the personal opinion of the sender and not that necessarily
> that of Enterpoint Ltd.. Readers should make their own evaluation of the
> facts. No responsibility for error or inaccuracy is accepted.
> 
> "guille" <guillerodriguez@terra.es> wrote in message
> news:5d891e95.0401080116.646d069a@posting.google.com...
> > Hi all,
> >
> > I have a signal that originates at a given device with known timing
> > with respect to the rising edge of a clock: 2 ns min, 8 ns typ, 20
> > ns max.
> >
> > This signal goes through a Xilinx XCR3256XL-10 CPLD and is delayed
> > by the internal CPLD logic. So the timing after going through the
> > CPLD relative to clock (clock does not go through the CPLD) would
> > be like this:
> >
> > tmin =  2 + min(CPLD prop. delay)
> > ttyp =  8 + typ(CPLD prop. delay)
> > tmax = 20 + max(CPLD prop. delay)
> >
> > The Xilinx datasheet specifies propagation delay in this case and
> > for this device to be 10 ns maximum in total, including input and
> > output buffer delays. However no minimum or typical times are given.
> >
> > I do understand typical times are of limited usefulness but minimum
> > I'd need to know. Right now I can only take 0 ns as minimum but I
> > assume there must be a better way.
> >
> > Does anyone know whether this data is available in any of Xilinx's
> > white papers or ANs (haven't found anything so far) or available on
> > demand, or can anyone suggest what's the best way to handle this
> > case?
> >
> > Thanks,
> > Guillermo Rodriguez

Article: 64598
Subject: Re: min propagation delay in xilinx cpld
From: Peter Alfke <peter@xilinx.com>
Date: Thu, 08 Jan 2004 09:23:04 -0800
Links: << >>  << T >>  << A >>
Guille,
your source promises a min delay that is 10% of its max delay. You are
safe in assuming a similar ratio for the CPLD. That means max 10 ns, min
1.0 ns.
This seemingly ridiculously loose specification is the result of many factors:
Processing tolerances including "down-binning" where the manufacturer
marks a faster ( and more valuable) part as a slower speed grade,
because therehappens to be more demand for that grade.
Then temperature ( cold is faster) and Vcc tolerances ( high is faster).
Plus additional guardband, since the min parameter is not actually
tested ( the max value is ), plus a lot of tester guardband if it were tested.

But 10% is a safe value, as long as you do not retrofit five years from
now, when you might get surprised by a much faster part...

It is always safer to design in sucha way that min delays values do not matter.
You can always be sure that the min delay will never be less than zero.
Peter Alfke, Xilinx

guille wrote:
> 
> Hi all,
> 
> I have a signal that originates at a given device with known timing
> with respect to the rising edge of a clock: 2 ns min, 8 ns typ, 20
> ns max.
> 
> This signal goes through a Xilinx XCR3256XL-10 CPLD and is delayed
> by the internal CPLD logic. So the timing after going through the
> CPLD relative to clock (clock does not go through the CPLD) would
> be like this:
> 
> tmin =  2 + min(CPLD prop. delay)
> ttyp =  8 + typ(CPLD prop. delay)
> tmax = 20 + max(CPLD prop. delay)
> 
> The Xilinx datasheet specifies propagation delay in this case and
> for this device to be 10 ns maximum in total, including input and
> output buffer delays. However no minimum or typical times are given.
> 
> I do understand typical times are of limited usefulness but minimum
> I'd need to know. Right now I can only take 0 ns as minimum but I
> assume there must be a better way.
> 
> Does anyone know whether this data is available in any of Xilinx's
> white papers or ANs (haven't found anything so far) or available on
> demand, or can anyone suggest what's the best way to handle this
> case?
> 
> Thanks,
> Guillermo Rodriguez

Article: 64599
Subject: Large/Fast static RAM
From: "Martin Euredjian" <0_0_0_0_@pacbell.net>
Date: Thu, 08 Jan 2004 17:42:41 GMT
Links: << >>  << T >>  << A >>
I'm trying to determine if anyone makes a large/fast static RAM part.  16M
(or more) x 16 bits (or more), 10ns.

I can't afford the address-to-data-out latency of dynamic RAM.  There are
ways around this, of course, but SRAM would be so much simpler.

Any ideas?

Thanks,


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

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





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