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 115425

Article: 115425
Subject: Re: DCT/IDCT on FPGA
From: "Doug Jones" <dougdjones@hotmail.com>
Date: 9 Feb 2007 13:20:14 -0800
Links: << >>  << T >>  << A >>
On Feb 8, 12:46 pm, "prakash" <prakash.akkas...@gmail.com> wrote:
> hi
> i am implementing DCT and IDCT on FPGA can any body give me some
> specific Block diagram you can send me the details on the mail id
> prakash.akkas...@gmail.com

Try these:

http://direct.xilinx.com/bvdocs/appnotes/xapp610.pdf

http://direct.xilinx.com/bvdocs/appnotes/xapp611.pdf


Article: 115426
Subject: Xilinx ML40x SRAM to/from Flash
From: "Brad Smallridge" <bradsmallridge@dslextreme.com>
Date: Fri, 9 Feb 2007 14:15:13 -0800
Links: << >>  << T >>  << A >>
Does any one have the VHDL code to transfer
ZBT SRAM data to and from the Flash Memory?

Seems like it should be a matter of wiggling
the control lines since the two memories share
the same data and address lines.

Also, I noticed Micron now says the Flash
memories are obsolete. Is there an easy
migration to newer chips?

Brad Smallridge
AiVision



Article: 115427
Subject: Disabling Interrupts/Context switching in Xilkernel
From: "Ed" <RobotBuilder@charter.net>
Date: 9 Feb 2007 17:56:26 -0800
Links: << >>  << T >>  << A >>
Hi,

I looked through the Xilkernel documentation and Xilinx mentions a few
times about enabling and disabling interrupts and context switching.
I need to be able to do this but can't seem to find anywhere how to do
this.  Anyone know how?  I don't want to just enable and disable a
single interrupt.  I want to disable other threads from executing for
a very short duration and turn off all interrupts.  I am using a Power
PC on the Virtex 4 FX12 MM.

Thanks,
-Ed


Article: 115428
Subject: NGDBuild error
From: "quad" <fyp.quadruples@gmail.com>
Date: 10 Feb 2007 02:14:57 -0800
Links: << >>  << T >>  << A >>
Hello
I'm working on Xilinx virtex II Pro FPGA kit.I generated netlist for
OR gate using JHDL, with a1 and a2 being inputs, and op being the
output.
I also created the following User constraint file: (not sure if the
given constraints are right!)

                           NET "a1" LOC="AC4";
                           NET "a2" LOC="AC3";
                           NET "op" LOC="AA6";

Using Xilinx ISE, i gave the command: (i'm particular abt not using
the GUI, as i need to call the cmds programmatically)
                        ngdbuild -p xc2vp30-ff896 -uc or_gate.ucf
or_gate.edn

Here i get the following warning:
WARNING:NgdBuild:483 - Attribute "LOC" on "op" is on the wrong type of
object.
   Please see the Constraints Guide for more information on this
attribute.
WARNING:NgdBuild:483 - Attribute "LOC" on "a2" is on the wrong type of
object.
   Please see the Constraints Guide for more information on this
attribute.
WARNING:NgdBuild:483 - Attribute "LOC" on "a1" is on the wrong type of
object.
   Please see the Constraints Guide for more information on this
attribute.

And subsequently, when i tried to map using the command
                        map or_gate.ngd  ( the ngd file created in the
above ngdbuild step) i get the following error.
ERROR:Pack:198 - NCD was not produced. All logic was removed from
design.  This
   is usually due to having no input or output PAD connections in the
design and
   no nets or symbols marked as 'SAVE'.  You can either add PADs or
'SAVE'
   attributes to the design, or run 'map -u' to disable logic trimming
in the
   mapper.

Please guide me as to how i can correct these errors. Is there some
specific tutorials available for writing user constraint files and to
readback the logic from FPGA and find if they are correct, by some
means?
Thanks
Quad


P.S: I'm pasting the edif file (or_gate.edn) generated by JHDL for
your reference


(edif evolution2_ckt
  (edifVersion 2 0 0)
  (edifLevel 0)
  (keywordMap (keywordLevel 0))
  (status
    (written
      (timeStamp 2007 2 10 10 28 36)
      (program "BYU-CC's JHDL-EDIF netlister by Peter Bellows and Eric
Blake"
        (version "0.3.45"))))
  (library evolution2_ckt
    (edifLevel 0)
    (technology (numberDefinition (scale 1 (E 1 -12) (unit
CAPACITANCE))))
    (cell (rename or2 "or2")
      (cellType GENERIC)
      (view view_1
        (viewType NETLIST)
        (interface
          (port i0  (direction INPUT))
          (port i1  (direction INPUT))
          (port o  (direction OUTPUT))
        )
     ))
    (cell (rename orX_2 "orX_2")
      (cellType GENERIC)
      (view view_1
        (viewType NETLIST)
        (interface
          (port (array (rename i "i[1:0]") 2) (direction INPUT))
          (port o  (direction OUTPUT))
        )
        (contents
          (instance or2
            (viewRef view_1 (cellRef or2)))

          (net (rename i__0__ "i<0>")
            (joined
              (portRef i0 (instanceRef or2))
              (portRef (member i 0))))
          (net (rename i__1__ "i<1>")
            (joined
              (portRef i1 (instanceRef or2))
              (portRef (member i 1))))
          (net (rename o "o")
            (joined
              (portRef o (instanceRef or2))
              (portRef o)))
        )
     ))
    (cell (rename orX_g_1 "orX_g_1")
      (cellType GENERIC)
      (view view_1
        (viewType NETLIST)
        (interface
          (port in1  (direction INPUT))
          (port in0  (direction INPUT))
          (port out  (direction OUTPUT))
        )
        (contents
          (instance orX
            (viewRef view_1 (cellRef orX_2)))

          (net (rename in1 "in1")
            (joined
              (portRef (member i 0) (instanceRef orX))
              (portRef in1)))
          (net (rename in0 "in0")
            (joined
              (portRef (member i 1) (instanceRef orX))
              (portRef in0)))
          (net (rename out "out")
            (joined
              (portRef o (instanceRef orX))
              (portRef out)))
        )
     ))
    (cell (rename evolution2_ckt "evolution2_ckt")
      (cellType GENERIC)
      (view view_1
        (viewType NETLIST)
        (interface
          (port a1  (direction INPUT))
          (port a2  (direction INPUT))
          (port op  (direction OUTPUT))
        )
        (contents
          (instance orX_g
            (viewRef view_1 (cellRef orX_g_1)))

          (net (rename op "op")
            (joined
              (portRef out (instanceRef orX_g))
              (portRef op)))
          (net (rename a2 "a2")
            (joined
              (portRef in1 (instanceRef orX_g))
              (portRef a2)))
          (net (rename a1 "a1")
            (joined
              (portRef in0 (instanceRef orX_g))
              (portRef a1)))
        )
     ))
  )
  (design ROOT
    (cellRef evolution2_ckt
      (libraryRef evolution2_ckt)))
)


Article: 115429
Subject: Xilinx Ethernet MAC - working with DMA (EDK)
From: "Guy_FPGA" <guybye@hotmail.com>
Date: 10 Feb 2007 02:27:09 -0800
Links: << >>  << T >>  << A >>
Hi all,
I am having some difficulties working with the DMA of the ethernet
mac.
I've downloaded a ref. design of web-server over the virtex-2P (with
ppc 405) - it works well. However I would like to add a DMA -> which
means that every packet that is recieved will be directly written to
the DIMM that is on board (xupv2p E.B.). I tried to read the docs
explaining the proceadure, BUT GOT LOST.

help someone??

thanks,

Guy


Article: 115430
Subject: Re: Virtex 4 SATA redux
From: "Antti" <Antti.Lukats@xilant.com>
Date: 10 Feb 2007 03:22:46 -0800
Links: << >>  << T >>  << A >>
On 8 Feb., 18:17, "s...@catalpatechnology.com"
<s...@catalpatechnology.com> wrote:
> I've read some of the heated discussions regarding Virtex 4 and SATA,
> but I'm still not sure what the answers are. My understanding is that
> with a modest amount of external circuitry (NOT an external phy) I can
> build a SATA interface. Some of the Xilinx answer database links
> regarding SATA are dead. Hopefully someone here can give me some
> pointers.
>
> 1) What about V4 fails to work for SATA?
> 2) Has anyone made it work, and willing to explain how it was done?
> 3) Can 3Gbps speeds be used?
> 4) Is there another programable device that would be easier (V5 still
> needs to age a bit).
>
> Thanks
>
> Sam

Hi Sam,

unfortunatly V-5 is the only Xilinx device that is claimed to be SATA
compliant.

V-4 has several issues, some have workarounds some not.
the OOB signalling has workaround, the CDR lock range limitation has
not.

But why are you so sceptic about the V-5 use?
I have ML505 on my desk and it has SATA connectors on it.

besides V-5 Lattice has promised to verify if the SC/ECP2M is fully
SATA compliant
it maybe but it is not officially confirmed by Lattice.

Antti
PS please feel to contact me in private, i have and SATA project
underway.












Article: 115431
Subject: Re: Modelsim SE 6.2c trying to use Xilinx ISE 9.1i simulation libraries... not working.
From: "Tony T" <tony.uniquify@gmail.com>
Date: 10 Feb 2007 04:37:24 -0800
Links: << >>  << T >>  << A >>
just thought that I would post the solution for all those who might
run into the problem in the future.

when doing simulation use:

"vsim -lib work -unisim_ver <other options> <test bench module>"

to make it search for other compiled libraries other than default
(work)... eg when it says "Referenced (but uncompiled) modules or
primitives:"

hope this made someone's life easier.. =)



Article: 115432
Subject: Re: data OCM BRAM Issues
From: "Nju Njoroge" <njoroge@stanford.edu>
Date: 10 Feb 2007 12:18:56 -0800
Links: << >>  << T >>  << A >>
Thanks for the update on your situation and also for the links to the
Answer Records and IBM's PDF. Hopefully, others will fare better than
we did.

Nju


Article: 115433
Subject: ModelSim - Do Files
From: "pete o." <portisi@comcast.net>
Date: 10 Feb 2007 15:16:29 -0800
Links: << >>  << T >>  << A >>
Hopefully this won't have to be a lesson in Tcl. Here is my problem. I
am using ModelSim
with Xilinx ISE. I will make a simulation and arrange the signals in
the order I would like them.
If you hit "File" and then "Save" a box pops up asking "Save waveform
formats?" and then it lists
the path to the do file. I click OK and expect the waveform formats to
be saved, and they are not.
The reason they are not is that every time you re-run the simulation
by clicking "Simulate Behavioral
Model" an automatic do file is used and the waveforms revert to the
default order. If you highlight
"Simulate Behavioral Model" and hit "properties" there is an option to
use a custom do file. If I try
that I get to the "VSIM" prompt, but no luck after that. I assume the
"automatic" option does a
bunch of stuff for you. I'm guessing there is a command or set of
commands that will allow
you to run your simulations without making the waveform go back to the
default order.
Can someone help me with this? BTW, what if you wanted to have
multiple do files?
Would the solution be the same?
                                             Thanks


Article: 115434
Subject: Re: Setting VHDL standard in Xilinx ISE
From: Jim Lewis <jim@synthworks.com>
Date: Sat, 10 Feb 2007 16:00:12 -0800
Links: << >>  << T >>  << A >>
David,
Not have a setting is real bad.

Last I looked Xilinx's recommended coding styles for
coding multiple edge FIFOs uses VHDL-93 shared variables.
In VHDL-2002 (the current IEEE revision) shared
variables require protected types.  Hence Xlinx's coding
methodology is illegal in the current standard.

Without a switch, what is going to happen to that
code that functions just fine, but is illegal?

BTW there are 1076.6-2004 recommended coding styles
for this structure (a single process with 2 clock edges).
I haven't checked recently, does Xilinx support them.

Cheers,
Jim


> Wojtek,
> 
> The XST Users Guide gives specific details on which VHDL standard XST 
> supports (and those that are conflicts).  See the UG located here: 
> http://toolbox.xilinx.com/docsan/xilinx9/books/docs/xst/xst.pdf
> 
> I do not believe that there is a way to specify the exact standard that you 
> may want to use.  Verilog 2001 appears to be the only HDL standard that is 
> selectable within the synthesis options.
> 
> -David
> 
> 
> "wojt" <wojtek.bocer@gmail.com> wrote in message 
> news:1171033608.993210.85410@a75g2000cwd.googlegroups.com...
>> Hi
>>
>> Does anyone here know, how to explicitly set which VHDL standard
>> should be used by Xilinx ISE (actually, by XST I think)?
>>
>> Cheers
>> Wojtek
>>
> 
> 

Article: 115435
Subject: Re: ModelSim - Do Files
From: Mike Treseler <mike_treseler@comcast.net>
Date: Sat, 10 Feb 2007 20:14:49 -0800
Links: << >>  << T >>  << A >>
pete o. wrote:
> I'm guessing there is a command or set of
> commands that will allow
> you to run your simulations without making the waveform go back to the
> default order.

try "add wave" from the modelsim prompt.

http://groups.google.com/groups/search?q=vhdl+vsim+add+wave
http://groups.google.com/groups/search?q=vsim+vcom+vmap

Article: 115436
Subject: Re: generating VHDL code from Matlab code for DSP - wavelet image compression
From: "EEngineer" <maricic@gmail.com>
Date: 10 Feb 2007 22:05:58 -0800
Links: << >>  << T >>  << A >>
On Feb 8, 4:40 am, Martin Thompson <martin.j.thomp...@trw.com> wrote:
> "EEngineer" <mari...@gmail.com> writes:
> > I am interested in image processing of 128x128 image using wavelet
> > transform compression, 12 bits per pixel, monochrome.
>
> At what sort of frame rate?
>
> Cheers,
> Martin
>
> --
> martin.j.thomp...@trw.com
> TRW Conekt - Consultancy in Engineering, Knowledge and Technologyhttp://www.conekt.net/electronics.html

Frame rate expected is 30fps.

Thanks,
Dan


Article: 115437
Subject: chipscope + mdm with microblaze ..
From: me_2003@walla.co.il
Date: 11 Feb 2007 02:08:45 -0800
Links: << >>  << T >>  << A >>
Hi all,
I'm having some trouble when trying to work with chipscope and mdm.
It goes like this -
I have a microblaze design (as sub module) that contains mdm. In the
ISE (not inside EDK) I added a chipscope ILA core.

When trying to map the design the mapper "screamed" about me trying to
use 2 Bscans (where there is only one available).

I knows that if using chipscope in EDK flow we can tell the EDK that
the system contains MDM and it does the job. What can I do when
working in ISE ?

any help will be appreciated

P.S. - my device is V2P30

Thanks, Mordehay.


Article: 115438
Subject: Re: ModelSim - Do Files
From: "Arnaud" <arivaton@gmail.com>
Date: 11 Feb 2007 03:03:51 -0800
Links: << >>  << T >>  << A >>
On Feb 11, 5:14 am, Mike Treseler <mike_trese...@comcast.net> wrote:
> pete o. wrote:
> > I'm guessing there is a command or set of
> > commands that will allow
> > you to run your simulations without making the waveform go back to the
> > default order.
>
> try "add wave" from the modelsim prompt.
>
> http://groups.google.com/groups/search?q=vhdl+vsim+add+wavehttp://groups.google.com/groups/search?q=vsim+vcom+vmap

I would more likely recommend that you tried "run file.do" from
modelsim. It will launch your file.do file.


Article: 115439
Subject: substracting a whole array of values at once
From: "CMOS" <manusha@millenniumit.com>
Date: 11 Feb 2007 03:36:22 -0800
Links: << >>  << T >>  << A >>
hi,
i need a whole matrix to be substracted form another in one clock
cycle.
and i need to store all the values of these matrices in either
distributed or block RAM.
i thought this is not possible with block RAM, as these have didicated
ports that are fixed in width.
so tried to use distributed RAM with the following verilog code.


parameter nColumns = 100;
parameter nRows = 200;

parameter RAM_WIDTH = 8;

//matrix 1 data
reg [RAM_WIDTH-1:0] data_1[nColumns*nRows-1:0];


//matrix 2 data
reg [RAM_WIDTH-1:0] data_2[nColumns*nRows-1:0];

reg [7:0] ix = 0;
reg [7:0] iy = 0;

reg[10:0] diff = 0;

always @ (start) // start will trigger the calculation
begin
for(ix = 0; ix < 100; ix = ix + 1) begin
	for(iy = 0; iy < 100; iy = iy + 1) begin
		diff = diff +data_1[iy] - data_2[ix];
	end
end
end

ise webpack completed stege one systhesis of this code after around 10
minutes and did not complete the whole systhesis even after around 3
hrs.

any assistance is very much appreciated.

thank you.


Article: 115440
Subject: Re: ModelSim - Do Files
From: Brian Drummond <brian_drummond@btconnect.com>
Date: Sun, 11 Feb 2007 11:46:52 +0000
Links: << >>  << T >>  << A >>
On 10 Feb 2007 15:16:29 -0800, "pete o." <portisi@comcast.net> wrote:

>Hopefully this won't have to be a lesson in Tcl. Here is my problem. I
>am using ModelSim
>with Xilinx ISE. I will make a simulation and arrange the signals in
>the order I would like them.
>If you hit "File" and then "Save" a box pops up asking "Save waveform
>formats?" and then it lists
>the path to the do file. I click OK and expect the waveform formats to
>be saved, and they are not.
>The reason they are not is that every time you re-run the simulation
>by clicking "Simulate Behavioral
>Model" an automatic do file is used and the waveforms revert to the
>default order.

Can't you save the DO file under a different name, and run that Do file
later from the Modelsim prompt?

- Brian

Article: 115441
Subject: Re: EDK tri-state control
From: "Newman" <newman5382@yahoo.com>
Date: 11 Feb 2007 06:17:29 -0800
Links: << >>  << T >>  << A >>
On Feb 1, 6:43 pm, "radarman" <jsham...@gmail.com> wrote:
> Hello,
> I am working with an unusual board that has two Xilinx Virtex 4 FX60's
> on it in a top/bottom mirrored configuration. (The BGA's are mounted
> above/below each other, with via's running between select pins to form
> mirrored pairs)
>
> The problem I am running into is that both FPGA's must run identical
> firmware loads, and in some cases, this results in contention due to
> the mirrored pins. I do have a strap bit that can tell the design
> whether it is loaded in the top or bottom fpga, which I use to remap
> the inputs. (ie, in the top part, pin AG30 is used as the input, and
> in the bottom part, AG5 is used instead) These input muxes work fine
> using a similar concept.
>
> The idea is that the fpga ID pin can be used to forcibly tri-state
> certain outputs in either the top or bottom design to prevent the
> contention. Since the fpga ID pin is an external input, the designs
> should be able to remain the same.
>
> So, I created an EDK ip core in VHDL that instantiates an OBUFT, and
> connected it between the user logic and the external net. The VHDL is
> simply a wrapper. (I did implement a for/generate block to handle
> vectors)
>
> The problem is that ISE is turning it into a LUT based AND gate
> instead, so I still get the contention. When I look at the pad in FPGA
> Editor, the T input is not mapped.
>
> I'm using ISE/EDK 8.2.03i for this project.
>
> Any ideas?
>
> Thanks!

Did you check that the "T" input is not always enabled and logic
exists for it to drive active and inactive?

-- Newman


From invalid@dont.spam Sun Feb 11 07:21:09 2007
Path: newssvr27.news.prodigy.net!newsdbm04.news.prodigy.net!newsdst01.news.prodigy.net!prodigy.com!newscon04.news.prodigy.net!prodigy.net!newshub.sdsu.edu!cyclone1.gnilink.net!spamkiller2.gnilink.net!gnilink.net!trndny09.POSTED!933f7776!not-for-mail
From: Phil Hays <invalid@dont.spam>
Subject: Re: substracting a whole array of values at once
User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table)
Message-Id: <pan.2007.02.11.15.25.30.68620@dont.spam>
Newsgroups: comp.arch.fpga
References: <1171193782.760395.217690@j27g2000cwj.googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Lines: 77
Date: Sun, 11 Feb 2007 15:21:09 GMT
NNTP-Posting-Host: 71.112.133.239
X-Complaints-To: abuse@verizon.net
X-Trace: trndny09 1171207269 71.112.133.239 (Sun, 11 Feb 2007 10:21:09 EST)
NNTP-Posting-Date: Sun, 11 Feb 2007 10:21:09 EST
Xref: prodigy.net comp.arch.fpga:126872

CMOS wrote:

> hi,
> i need a whole matrix to be substracted form another in one clock cycle.
> and i need to store all the values of these matrices in either
> distributed or block RAM.
> i thought this is not possible with block RAM, as these have didicated
> ports that are fixed in width.
> so tried to use distributed RAM with the following verilog code.
> 
> 
> parameter nColumns = 100;
> parameter nRows = 200;
> 
> parameter RAM_WIDTH = 8;
> 
> //matrix 1 data
> reg [RAM_WIDTH-1:0] data_1[nColumns*nRows-1:0];
> 
> //matrix 2 data
> reg [RAM_WIDTH-1:0] data_2[nColumns*nRows-1:0];
>
> reg [7:0] ix = 0;
> reg [7:0] iy = 0;
> 
> reg[10:0] diff = 0;
> 
> always @ (start) // start will trigger the calculation begin for(ix = 0;
> ix < 100; ix = ix + 1) begin
> 	for(iy = 0; iy < 100; iy = iy + 1) begin
> 		diff = diff +data_1[iy] - data_2[ix];
> 	end
> end
> end
> 
> ise webpack completed stege one systhesis of this code after around 10
> minutes and did not complete the whole systhesis even after around 3
> hrs.
> 
> any assistance is very much appreciated.

I'm answering this assuming that it is school homework.

You try simulating this code first. It just might not do what you want it
to do. For example, try the case of data_1 is all x7F and data_2 is all
x81. Calculate the expected value of diff, and see what the simulation
produces.

You might want to try a smaller example. Try to get a 2 X 2 matrix correct
first.

You might want to look at the synthesis templates. RAMs need to be coded
in fairly specific ways to be recognized. Code that is too different
from the template may not produce the expected result. To produce
distributed RAM:


   parameter RAM_WIDTH = <ram_width>;
   parameter RAM_ADDR_BITS = <ram_addr_bits>;

   reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];

   wire [RAM_WIDTH-1:0] <output_data>;

   <reg_or_wire> [RAM_ADDR_BITS-1:0] <address>; <reg_or_wire>
   [RAM_WIDTH-1:0] <input_data>;

   always @(posedge <clock>)
      if (<write_enable>)
         <ram_name>[<address>] <= <input_data>;

   assign <output_data> = <ram_name>[<address>];


-- 
Phil Hays (Xilinx, always writing for myself)


Article: 115442
Subject: Re: substracting a whole array of values at once
From: "CMOS" <manusha@millenniumit.com>
Date: 11 Feb 2007 08:47:09 -0800
Links: << >>  << T >>  << A >>
On Feb 11, 9:21 pm, Phil Hays <inva...@dont.spam> wrote:
> CMOS wrote:
> > hi,
> > i need a whole matrix to be substracted form another in one clock cycle.
> > and i need to store all the values of these matrices in either
> > distributed or block RAM.
> > i thought this is not possible with block RAM, as these have didicated
> > ports that are fixed in width.
> > so tried to use distributed RAM with the following verilog code.
>
> > parameter nColumns = 100;
> > parameter nRows = 200;
>
> > parameter RAM_WIDTH = 8;
>
> > //matrix 1 data
> > reg [RAM_WIDTH-1:0] data_1[nColumns*nRows-1:0];
>
> > //matrix 2 data
> > reg [RAM_WIDTH-1:0] data_2[nColumns*nRows-1:0];
>
> > reg [7:0] ix = 0;
> > reg [7:0] iy = 0;
>
> > reg[10:0] diff = 0;
>
> > always @ (start) // start will trigger the calculation begin for(ix = 0;
> > ix < 100; ix = ix + 1) begin
> >    for(iy = 0; iy < 100; iy = iy + 1) begin
> >            diff = diff +data_1[iy] - data_2[ix];
> >    end
> > end
> > end
>
> > ise webpack completed stege one systhesis of this code after around 10
> > minutes and did not complete the whole systhesis even after around 3
> > hrs.
>
> > any assistance is very much appreciated.
>
> I'm answering this assuming that it is school homework.
>
> You try simulating this code first. It just might not do what you want it
> to do. For example, try the case of data_1 is all x7F and data_2 is all
> x81. Calculate the expected value of diff, and see what the simulation
> produces.
>
> You might want to try a smaller example. Try to get a 2 X 2 matrix correct
> first.
>
> You might want to look at the synthesis templates. RAMs need to be coded
> in fairly specific ways to be recognized. Code that is too different
> from the template may not produce the expected result. To produce
> distributed RAM:
>
>    parameter RAM_WIDTH = <ram_width>;
>    parameter RAM_ADDR_BITS = <ram_addr_bits>;
>
>    reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
>
>    wire [RAM_WIDTH-1:0] <output_data>;
>
>    <reg_or_wire> [RAM_ADDR_BITS-1:0] <address>; <reg_or_wire>
>    [RAM_WIDTH-1:0] <input_data>;
>
>    always @(posedge <clock>)
>       if (<write_enable>)
>          <ram_name>[<address>] <= <input_data>;
>
>    assign <output_data> = <ram_name>[<address>];
>
> --
> Phil Hays (Xilinx, always writing for myself)

hi,


thanks for the reply.
actually its not a school homework. im doing a project in which i need
to deduct an image from another.
this has to be done several times to get the output. to reduce time
for the calculation, i need to do the substraction in one clock cycle.
in order to do that i need concurrent access to all pixels of both
images. im not sure how this could be acheived with available block or
distributed RAM.

thank you.


Article: 115443
Subject: CLOCK GENERATOR
From: "mahdi" <saghaian@gmail.com>
Date: 11 Feb 2007 09:21:34 -0800
Links: << >>  << T >>  << A >>
Hi every body
I want to creat a VHDL code in order to generate 576 clocks.
The range of clocks frequency is [3 kHz to 75 kHz] and each of them
has 125 Hz frequency difference.
Can any body help me?I would appreciate it.


Article: 115444
Subject: Re: Actel FIFO in Synplify: blackbox is missing a user supplied timing model
From: phil <mountaineering@web.de>
Date: Sun, 11 Feb 2007 10:23:34 -0800
Links: << >>  << T >>  << A >>
ok, I see. If you don't know the timing numbers you have two choices:

1. Check the datasheet. It should provide you with the desired information 2. If you don't have the datasheet you can run P&R and get the numbers from the timing report (but only if those paths are violated). If there is no violation there is no need to apply black box timing attributes any way. You could safely ignore Synplify's warnings.

Cheers, Phil

Article: 115445
Subject: question about DCM in virtex5: fails the maximum period check
From: "cathy" <hy34@njit.edu>
Date: 11 Feb 2007 10:59:27 -0800
Links: << >>  << T >>  << A >>
Hello, all

I simulate my design in modelsim and it works fine. But when I put it
on board, the result it wrong. I noticed the following warning in
the .mrp file complaining about DCM and I don't know what it will
affect the result.

The system uses a DCM with "PARAMETER C_CLKDV_DIVIDE = 5.000000" to
generated a 20Mhz signal from the input clk pin (100MHz in ML501
xilinx board) and work as the master clock
for microblaze.  A coprocessor is connected with microblaze and part
of the design needs a syncronized 3x clock signals. So I used a DCM to
generated the 3 times clock over the master clock. But when I do the
implementation, the following warning is given:

My question is:
1, will the mean that the syncronized 3x clock generation failed?
Then why it just a warning, but not error?
2, What does it mean and how can I avoid it?

Thanks a lot,
Cathy

--------------------------------------------------------------------------------------------
WARNING:Timing:3234 - Timing Constraint
   "TS_dcm_0_dcm_0_CLKDV_BUF = PERIOD TIMEGRP "dcm_0_dcm_0_CLKDV_BUF"
   TS_sys_clk_pin * 5 HIGH 50%"
    fails the maximum period check for input clock
   MB0DLMBCntrl_BRAM_PORT_BRAM_Clk to DCM
   ...../dcm3_inst/DCM_INST because the period
   constraint value (50000 ps) exceeds the maximum internal period
limit of
   20001 ps.   Please reduce the period of the constraint to remove
this timing
   failure.
WARNING:Timing:3236 - Timing Constraint
   "TS_dcm_0_dcm_0_CLKDV_BUF = PERIOD TIMEGRP "dcm_0_dcm_0_CLKDV_BUF"
   TS_sys_clk_pin * 5 HIGH 50%"
    fails the maximum period check for output clock
  ..../dcm3_inst/CLKFX_BUF from DCM
  ....t/dcm3_inst/DCM_INST because the period
   constraint value (16666 ps) exceeds the maximum internal period
limit of
   10001 ps.   Please reduce the period of the constraint to remove
this timing
   failure.
WARNING:Timing:3236 - Timing Constraint
   "TS_dcm_0_dcm_0_CLKDV_BUF = PERIOD TIMEGRP "dcm_0_dcm_0_CLKDV_BUF"
   TS_sys_clk_pin * 5 HIGH 50%"
    fails the maximum period check for output clock
   .../dcm3_inst/CLK0_BUF from DCM
  .../dcm3_inst/DCM_INST because the period
   constraint value (50000 ps) exceeds the maximum internal period
limit of
   31251 ps.   Please reduce the period of the constraint to remove
this timing
   failure.
WARNING:Timing:3234 - Timing Constraint
   "TS_dcm_0_dcm_0_CLKDV_BUF = PERIOD TIMEGRP "dcm_0_dcm_0_CLKDV_BUF"
   TS_sys_clk_pin * 5 HIGH 50%"
    fails the maximum period check for input clock
   MB0DLMBCntrl_BRAM_PORT_BRAM_Clk to DCM
   ...../dcm3_inst/DCM_INST because the period
   constraint value (50000 ps) exceeds the maximum internal period
limit of
   20001 ps.   Please reduce the period of the constraint to remove
this timing
   failure.
WARNING:Timing:3236 - Timing Constraint
   "TS_dcm_0_dcm_0_CLKDV_BUF = PERIOD TIMEGRP "dcm_0_dcm_0_CLKDV_BUF"
   TS_sys_clk_pin * 5 HIGH 50%"
    fails the maximum period check for output clock
   ....t/dcm3_inst/CLKFX_BUF from DCM
   ..../dcm3_inst/DCM_INST because the period
   constraint value (16666 ps) exceeds the maximum internal period
limit of
   10001 ps.   Please reduce the period of the constraint to remove
this timing
   failure.
WARNING:Timing:3236 - Timing Constraint
   "TS_dcm_0_dcm_0_CLKDV_BUF = PERIOD TIMEGRP "dcm_0_dcm_0_CLKDV_BUF"
   TS_sys_clk_pin * 5 HIGH 50%"
    fails the maximum period check for output clock
   ..../dcm3_inst/CLK0_BUF from DCM
   ..../dcm3_inst/DCM_INST because the period
   constraint value (50000 ps) exceeds the maximum internal period
limit of
   31251 ps.   Please reduce the period of the constraint to remove
this timing
   failure.K0_BUF from DCM
..../dcm3_inst/DCM_INST because the period
   constraint value (50000 ps) exceeds the maximum internal period
limit of
   31251 ps.   Please reduce the period of the constraint to remove
this timing
   failure.


Article: 115446
Subject: Re: query in P&R of FPGA
From: phil <mountaineering@web.de>
Date: Sun, 11 Feb 2007 12:01:09 -0800
Links: << >>  << T >>  << A >>
I bet 100 bucks that your design either contains asynchronous logic (gated clocks, ripple clocks) or doesn't meet timing. If design is asynchronous then it's your prob. If it violates timing you should get information from timing analyzer. There is no need to get angry on the Altera guys. Check your design first.

Cheers, Phil

Article: 115447
Subject: Re: substracting a whole array of values at once
From: John_H <newsgroup@johnhandwork.com>
Date: Sun, 11 Feb 2007 20:27:45 GMT
Links: << >>  << T >>  << A >>
The only way to subtract all values at once (!) is to use registers, not 
distributed memory or BlockRAM.  You will also need one subtractor for 
each pair of image pixels.

Redefine what you consider necessary.

Do you have access to all those pixels at once the clock cycle after the 
subtract?

If a new image is overwriting the first image in the clock after the 
subtract is supposed to happen, read the previous value and take the 
subtraction the same time the next value is being written.  Cycle 
through all the values you need to subtract *as you read them* rather 
than requiring the subtraction happen all at once.

You can do a bazillion subtracts of width n if you have 3n bazillion 
registers and n(+1?) bazillion LUTs.

If you HAVE to have memory, you do not HAVE to have single-cycle subtracts.

Think about the hardware.

- John_H


CMOS wrote:
> hi,
> i need a whole matrix to be substracted form another in one clock
> cycle.
> and i need to store all the values of these matrices in either
> distributed or block RAM.
> i thought this is not possible with block RAM, as these have didicated
> ports that are fixed in width.
> so tried to use distributed RAM with the following verilog code.
> 
> 
> parameter nColumns = 100;
> parameter nRows = 200;
> 
> parameter RAM_WIDTH = 8;
> 
> //matrix 1 data
> reg [RAM_WIDTH-1:0] data_1[nColumns*nRows-1:0];
> 
> 
> //matrix 2 data
> reg [RAM_WIDTH-1:0] data_2[nColumns*nRows-1:0];
> 
> reg [7:0] ix = 0;
> reg [7:0] iy = 0;
> 
> reg[10:0] diff = 0;
> 
> always @ (start) // start will trigger the calculation
> begin
> for(ix = 0; ix < 100; ix = ix + 1) begin
> 	for(iy = 0; iy < 100; iy = iy + 1) begin
> 		diff = diff +data_1[iy] - data_2[ix];
> 	end
> end
> end
> 
> ise webpack completed stege one systhesis of this code after around 10
> minutes and did not complete the whole systhesis even after around 3
> hrs.
> 
> any assistance is very much appreciated.
> 
> thank you.

Article: 115448
Subject: Re: CLOCK GENERATOR
From: "Peter Alfke" <alfke@sbcglobal.net>
Date: 11 Feb 2007 12:47:30 -0800
Links: << >>  << T >>  << A >>
On Feb 11, 9:21 am, "mahdi" <sagha...@gmail.com> wrote:
> Hi every body
> I want to creat a VHDL code in order to generate 576 clocks.
> The range of clocks frequency is [3 kHz to 75 kHz] and each of them
> has 125 Hz frequency difference.
> Can any body help me?I would appreciate it.

Unless you use an analog PLL you will have some output jitter.
Let's assume you can tolerate 4 ns of jitter ( one part in 3000 at
your top frequency.)
Then you build a 20 bit binary accumulator, continuously add the
desired multiple of 125 Hz (i.e. the value between 24 and 600, but
expressed in binary) to the LSB end of the accumulator.
The MSB of the accumulator is your desired output frequency, provided
you clock the accumulator with a clock frequency of 250 Hz times
2exp20, which is 262.144 MHz, a reasonable clock frequency which
maximizes the jitter to less than 4 ns.
If you modify the accumulator to be decimal, you can use a more
convenient even clock frequency. Food for thought!
This technique is called Direct Digital Synthesis, or DDS.
Peter Alfke


Article: 115449
Subject: FPGA configuration direct from PLX
From: "jim2345" <rjduck@townisp.com>
Date: 11 Feb 2007 12:58:20 -0800
Links: << >>  << T >>  << A >>
Hi,

My apologies if this has been covered elsewhere - I did look!

I am trying to configure a Virtex 4 FPGA from a PLX 9656 using the two
Useri/o pins in SelectMAP8 mode.
I can use one to monitor the DONE bit and one to drive the RDWR line.
My problem is I am not sure how to generate the CCLK to the FPGA so
the config data is latched correctly,

anybody tried this?

thanks, jim




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