IPB

Welcome Guest ( Log In | Register )

14 Pages V   1 2 3 > » 

RalphBodenner
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:
  • New PSPs: Xilinx Virtex-6 APU and PLB v4.6
  • Updated online tutorials for Xilinx ISE 11.2
  • CoValidator usability improvements
  • No limit to width of streams in desktop simulation
  • Bug fix: Multidimensional array offsets calculated with missing bits
  • Bug fix: Five bits used to compare 64-bit integers
  • Bug fix: Maximum number of predicates exceeded

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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
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

RalphBodenner
Posted on: Jun 30 2009, 05:34 PM


Advanced Member
***

Group: Admin
Posts: 348
Joined: 4-January 05
Member No.: 3


QUOTE (Jonathan @ Jun 25 2009, 06:32 PM) *
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

RalphBodenner
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

RalphBodenner
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 smile.gif Stage Master Explorer should also be able to show you, in a friendlier graphical way, what the resulting hardware blocks will look like.

Ralph
  Forum: Impulse C Support Forum · Post Preview: #2044 · Replies: 1 · Views: 273

RalphBodenner
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

RalphBodenner
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

14 Pages V   1 2 3 > » 

New Posts  New Replies
No New Posts  No New Replies
Hot topic  Hot Topic (New)
No new  Hot Topic (No New)
Poll  Poll (New)
No new votes  Poll (No New)
Closed  Locked Topic
Moved  Moved Topic
 

Lo-Fi Version Time is now: 10th September 2010 - 11:26 AM