where to check which dcm/pll supported in which xilinx fpga technology? - xilinx

Please tell me where to look for supported DCM/PLL on xilinx fpga technology .
Example - DCM_ADV supported in virtex 4 but not in xcv5

Xilinx offers a "Library Guide for HDL Designs" for each ISE Version and each FPGA Family. This User Guide (UG) lists all available soft and hard macros for the given FPGA family.
For example:
UG621 for Virtex-5
UG623 for Virtex-6
UG768 for 7-Series

Related

Programming a software for diagnosing SAE J1939

I'm trying to program a software similar to this
Where could I find specific information on the programming language used, the required environment, etc?
Thanks.
If you have some money to spend, check out the PCAN-USB device. Using this device you can write your own program using their API, which is supported on most major languages, or getting a license for their PCAN-Explorer software whichever you prefer. I believe versions 5.4 and up have a J1939 plugin that you can get.
You can use different hardware devices and create your code in visual studio or other vendor applications such as CANoe or CANAlyzer.
Hardware:
PCAN
Kvazer
IXXAT USB-to-CAN FD
CANcase
VN1610
or create your own CAN to USB gateway design.
All the available hardware supports different development platforms so it will depends on how much time/money you want to expend.
If you are using the Vector CAN interfaces as the hardware, I suggest you review the Vector XL API, which you can use for free. Vector XL API is primarily intended to be used with the C# programming language.

Mechanism like CUDA streams in Xeon Phi?

I am new to work with Xeon Phi Co-processor and my question is:
Does exists a mechanism like CUDA streams in Xeon Phi ???
That's right, hStreams essentially covers the key features of CUDA Streams and OpenCL, in that several CUDA Streams and OpenCL apps have been ported to hStreams. Users of hStreams, like the OmpSs folks at Barcelona Supercomputing assessed that hStreams was easier to use than CUDA Streams, and offered better support for synchronization, required fewer unique APIs, and fewer lines of code.
For some more documentation, please see http://lotsofcores.com/hStreams, which you can also find a link of where to download MPSS and a blog that offers a few highlights of its features, including hStreams.
Once you've installed hStreams, look in /usr/share/doc/hStreams.
Yes. The Intel Manycore Platform Software Stack (MPSS) provides hStreams, which are designed to be similar to the CUDA streams model.
There is a chapter in High Performance Parallel Programming Pearls II on hStreams, which you can preview in Google Books.
I can't find any detailed documentation on Intel's website, but the release notes say that you can find PDFs in the MPSS distribution, which should be on any Intel Xeon Phi coprocessor system.
BSC has detailed documentation of hStreams here.

What does a device driver look like?

When a manufacturer designs a hardware device, they obviously have someone who is in charge of writing a driver for that device for different platforms.
While I know that there are probably more than one "type" of driver for different types of devices, a driver for a device by it's nature must be very different from a normal application or script.
I've always wanted to pick apart a driver just to find out how it allows an OS to interface with hardware, but my programming knowledge is lacking.
Out of curiosity, I'd just like to know:
How does a device driver work, exactly?
When designing a driver for a device, what things do programmers consider?
What languages are drivers written in?
What is the overall process for designing a driver?
I suggest that you read (at lease the first chapter) "Linux Device Drivers". It will answer your basic questions and will allow you to study how to develop device drivers for Linux OS if you want to.
You can find it here: http://lwn.net/Kernel/LDD3/
When designing a device driver, programmers look at the functionalities of the device that are to be implemented and write the driver accordingly
I prefer C / C++ for writing a device driver
but have seen driver in assembly language also
overall process is dependent on device itself

What's the difference between AMD's APP SDK and (AMD) ATI's Stream Technology?

I'm working on a project that will use an AMD GPU for processing data. I noticed AMD has two different SDKs available on their website for using the GPU: ATI Stream Technology and
OpenCLâ„¢ and the AMD APP SDK. It looks like both support OpenCL but I haven't found anything on the site explicitly pointing out why one would use one over the other. What's the difference between these two?
The AMD APP SDK is here: http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx
The website should also answer your question about the difference between Stream and APP:
AMD Accelerated Parallel Processing (APP) SDK (formerly ATI Stream)
It used to be called AMD Stream SDK, they probably renamed it after adding support for non-Firestream hardware (namely OpenCL)
stream is the higher level amd-specific project (hardware and software) that includes opencl as the current software implementation. stream originally used the "brook" language, but switched to opencl in 2011. since then opencl became more popular (because it is a cross-platform standard that has been particularly well supported by apple) and these days amd doesn't seem to mention stream much. you can see this in a link like http://www.amd.com/us/products/technologies/stream-technology/opencl/pages/opencl.aspx where opencl is a "child" of stream (or the menu on the left of that page, where the higher level group is stream; other children are related to hardware).
in short, you want opencl. and despite the confusing mess that is amd's site, their opencl implementation is pretty solid.
hmmm. re-reading your question you seem to say there are two separate sdks. do you actually drill down to two different packages? my understanding is that opencl is the stream sdk. if you have found two different sdks (that are both current) can you link to them?

Creating drivers and firmware

If I was told I needed to create a driver for some product (say, a game controller), how would I go about creating one? Is this something you could do normally in C/C++?
And what about firmware for external deviced connect to USB? How is this created usually? Is this also done in C/C++, or some lower level language?
Thanks!
Device drivers for desktop computer operating systems are generally written in either C or C++. The operating system you would target will have some form of framework or device driver development environment. Often these development kits can be obtained free of charge.
There are books available for Windows, Linux, and MacOS X (and others) that detail the process of creating a device driver.
If your driver is related to a device on a specific hardware bus (PCI, PCI-X, USB, SCSI, SATA, etc.) you can also get books on that specific technology. An understanding of that hardware system can greatly facilitate the design of your driver.
Another good resource is the open source code for similar devices to yours. You can obtain that from the Linux kernel source or FreeBSD source and study how certain aspects of your type of device are implemented.
EDIT: I nearly forgot to mention that you will also need data sheets, schematics, and/or theory of operation information about the device itself.
I'll add to Amardeep's good answer with the following books that will help you think about the context device drivers operate in, and how they're structured:
Linux:
http://www.amazon.com/Understanding-Linux-Kernel-Third-Daniel/dp/0596005652
Windows:
http://www.amazon.com/Programming-Microsoft-Windows-Driver-Model/dp/0735618038/ref=sr_1_1?ie=UTF8&s=books&qid=1277439434&sr=1-1
Mac OS:
http://www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542/ref=sr_1_1?ie=UTF8&s=books&qid=1277439467&sr=1-1
You do it in any language that can talk to the interface. If it requires poking ports or addresses directly then you use assembly or C. If there's a higher-level interface such as libusb then you can use almost any language you like.

Resources