| Posted on: Aug 31 2009, 06:04 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Impulse Accelerated Technologies is pleased to announce the release of CoDeveloper Version 3.60 for the Windows and Linux operating systems. New in this release:
A complete changelist can be found in the "Version History" section of the CoDeveloper User Guide. Users with an up-to-date maintenance contract can download the release and find installation instructions here: http://www.ImpulseAccelerated.com/ReleaseFiles/ Please send any feedback or problem reports to support@impulsec.com, or post them to the Impulse Support Forum at http://impulse-support.com/forums/. |
| Forum: Impulse Announcements · Post Preview: #2165 · Replies: 0 · Views: 1,001 |
| Posted on: Aug 25 2009, 10:30 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi John, This bug will be fixed in the upcoming 3.60 release. Regards, Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2163 · Replies: 2 · Views: 376 |
| Posted on: Aug 24 2009, 09:48 AM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Almost all of the example projects that ship with CoDeveloper use the CSP model. The Impulse C API provides methods for streaming and process creation that let you implement CSP. Regards, Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2162 · Replies: 1 · Views: 395 |
| Posted on: Aug 1 2009, 02:08 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Gloria, We do plan to support the other interfaces, but there's no planned release date yet. The next revision will likely add the creation of trace files during desktop simulation for register and signal interfaces. Producing accurate HDL testbenches for these interfaces is somewhat difficult, due to their unsynchronized nature. Limitations of the current version of CoValidator can be worked around by editing the generated HDL testbench. Register, signal, and memory ports are left unconnected in the testbench, so you can add stimulus code for those interfaces. Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2156 · Replies: 1 · Views: 391 |
| Posted on: Aug 1 2009, 01:46 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Yes, I would recommend using custom macros for your 18-bit type. You can use co_uint18 to contain the bits. Fixed-point arithmetic consumes much fewer resources than floating-point. Ralph |
| Forum: Xilinx Platform Support · Post Preview: #2155 · Replies: 1 · Views: 270 |
| Posted on: Jul 28 2009, 11:14 AM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
To clarify: you can cause the evaluation of all the if-else conditions in a block to be computed concurrently (as possible), ignoring the C language requirements for short-circuit evaluation, by applying the CO FLATTEN pragma to the block. This still doesn't allow you to scatter mutually exclusive conditionals throughout your code, but I believe it may help address the design problem you are after. |
| Forum: Impulse C Support Forum · Post Preview: #2135 · Replies: 2 · Views: 305 |
| Posted on: Jul 27 2009, 07:33 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Sorry, there's no way to do this in Impulse C other than to use an if-else if block. |
| Forum: Impulse C Support Forum · Post Preview: #2132 · Replies: 2 · Views: 305 |
| Posted on: Jul 27 2009, 07:17 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
These signals are part of the Impulse C stream (co_stream) interface. Look for the section "Impulse C Input/Output Interfaces" in the "CoDeveloper User Guide". |
| Forum: Xilinx Platform Support · Post Preview: #2131 · Replies: 1 · Views: 191 |
| Posted on: Jul 27 2009, 07:13 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
I would take a look at BlueCat Linux and the PSP we offer for it, as I suspect it may use a similar driver. The relevant source and Makefiles are in %IMPULSEC_HOME%\Architectures\Xilinx\MicroBlaze\BlueCat\. There is also documentation for a BlueCat example here: http://www.ImpulseAccelerated.com/ReadyToR...ECAT_MBLAZE.pdf (We don't officially support Petalinux.) Regards, Ralph |
| Forum: Xilinx Platform Support · Post Preview: #2130 · Replies: 3 · Views: 254 |
| Posted on: Jul 27 2009, 06:58 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
The best way to do this is to call co_register_write at the beginning of a hardware process, before any other statements. The register will be written with the value quite soon after reset in this case. |
| Forum: Impulse C Support Forum · Post Preview: #2128 · Replies: 1 · Views: 378 |
| Posted on: Jul 22 2009, 02:03 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Ross, There is a Mersenne Twister random number generator implemented in the CoDeveloper installation's Examples/Scientific/MersenneTwister32 project. Regards, Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2110 · Replies: 1 · Views: 385 |
| Posted on: Jul 21 2009, 03:41 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Thanks for the report, John. I'll try to reproduce this with the latest compiler release. Regards, Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2106 · Replies: 2 · Views: 376 |
| Posted on: Jul 13 2009, 10:42 AM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Juanma, The 'clk' signal in the ModelSim shot is running at a different rate than 'sclk'... did you generate the design with dual clocks? The 'sclk' input is unused (left open) by default. If the input comes in every clock cycle, the output should also issue new output each clock (after an initial latency to fill the pipeline). Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2091 · Replies: 1 · Views: 385 |
| Posted on: Jul 8 2009, 01:13 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
QUOTE ERROR: Stream "invIn" must be created and opened with the same data type There's your problem right there. Make sure the same datatype is used in all calls to co_stream_open and co_stream_create for the "invIn" stream. Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2083 · Replies: 6 · Views: 434 |
| Posted on: Jul 6 2009, 09:10 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Nelson, The FXMUL32 macro normally requires a 64-bit intermediate result, and is defined for PLB-based platforms, but not FSL-based platforms. We're investigating the best solution, but a quick workaround would be to try copying the macro definition from %IMPULSEC_HOME%/Include/co_math.h into Filter_sw.c. Regards, Ralph |
| Forum: General Discussions · Post Preview: #2080 · Replies: 9 · Views: 439 |
| Posted on: Jul 6 2009, 02:16 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
In what way does the simulation not work? Do you see an error message at compile time? At run time? Have you tried to use a debugger on the simulation program? There is a Pico API for moving data on the host to/from the FPGA. Look at a Ready To Run example for the Pico E-16 platform, which uses the same host library as the E-14: http://www.impulseaccelerated.com/ReadyToR...er_Pico_E16.zip Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2078 · Replies: 6 · Views: 434 |
| Posted on: Jul 6 2009, 02:12 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Jonathan, Please use UNIX-style directory separators: '/'. If you enter such paths directly in the Project Options dialog's Build tab, all should be well. Regards, Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2077 · Replies: 4 · Views: 234 |
| Posted on: Jul 3 2009, 09:38 AM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Nelson, What are the warning messages EDK gives you? Ralph |
| Forum: General Discussions · Post Preview: #2069 · Replies: 9 · Views: 439 |
| Posted on: Jun 30 2009, 05:42 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
This looks good. Do you have some software processes to test the code, by sending and receiving pixel data? CoDeveloper ships with several projects that read/write BMP-format image files for testing such filters, for example EdgeDetect5X5. How you get data to/from the FPGA depends on the FPGA platform you're using. What kind of board do you have? Regards, Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2062 · Replies: 6 · Views: 434 |
| Posted on: Jun 30 2009, 05:38 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Improvements to the GiDEL PSP are in development in concert with the University of Florida's CHREC lab. I can send you an updated PSP and some documentation this week via personal message on this forum. Which board are you using? |
| Forum: Impulse C Support Forum · Post Preview: #2061 · Replies: 2 · Views: 479 |
| Posted on: Jun 30 2009, 05:34 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Ahhh, okay. So what does it mean when I set pipeline of mul2_* to 1? It means a multiplier will be inferred with a longer latency, but that breaks the operation down to a sum of products of, say two 16x16 multiplies for a 32x32 operation. This might let your clock run faster. Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2060 · Replies: 7 · Views: 765 |
| Posted on: Jun 30 2009, 05:11 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Ramona, You'll want to compile only software source files for the embedded processor, rather than the hardware source file you reprinted in your post. If you target your Impulse C project to a PowerPC-based Platform Support Package, such as "Xilinx Virtex-4 APU (VHDL)", the proper source files for the PowerPC, including driver code, will be generated and exported when you run the "Export Generated Hardware" and "Export Generated Software" commands from CoDeveloper. I would suggest following one of the tutorials for the ML403 development board for an overview of the entire process of building the hardware and software portions of an Impulse C application using CoDeveloper and Xilinx Platform Studio: http://www.impulseaccelerated.com/Tutorials/Xilinx/ Regards, Ralph |
| Forum: Xilinx Platform Support · Post Preview: #2059 · Replies: 1 · Views: 145 |
| Posted on: Jun 25 2009, 04:33 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Jonathan, Did you try adding a default case to each switch block in the code sample above? I'm not sure if constant propagation will collapse the switch to nothing when you switch on a constant value. You could try, and see how the generated HDL changes. This is like reading assembly code, but scarier Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2044 · Replies: 1 · Views: 273 |
| Posted on: Jun 25 2009, 04:23 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Hi Jonathan, Looks like SFL sockets are implemented using Windows Sockets (WinSock) on Windows. WSAGetLastError and the usual suspects, such as htons and gethostbyname, are provided by the WinSock library, so you'll have to link it with your desktop simulation. I believe the linker option you'll want is '-lws2_32', which can be added to the "Additional linker options" field in the Project Options dialog's Build tab. The reason you don't run into this in VS is that it automatically links many Windows libraries if you use the default project settings. Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2043 · Replies: 2 · Views: 324 |
| Posted on: Jun 25 2009, 03:56 PM | |
|
Advanced Member ![]() ![]() ![]() Group: Admin Posts: 348 Joined: 4-January 05 Member No.: 3 |
Thanks for joining the discussion, Jonathan! Resource sharing isn't automatic with Impulse C--there aren't any compiler mechanisms to automatically share the hardware implementation of an operator or primitive function between uses of one in your code. You could share the multiplier in your code example by doing a single multiply in a small loop over an array of operands. Or you could write an HDL function that feeds both pairs of operands through the same multiplier, then call that HDL function from C using the CO IMPLEMENTATION pragma. The CO SET pragma usage Jonathan mentions is for specifying resource usage, in particular DSP vs. logic-based multipliers. It can be handy when you want to explicitly control which multipliers use the faster DSP blocks (which can be scarce), for example. Ralph |
| Forum: Impulse C Support Forum · Post Preview: #2042 · Replies: 7 · Views: 765 |
New Replies No New Replies Hot Topic (New) Hot Topic (No New) |
Poll (New) Poll (No New) Locked Topic Moved Topic |
| Lo-Fi Version | Time is now: 10th September 2010 - 11:26 AM |