cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
hvymtlsteve
Observer
Observer
7,026 Views
Registered: ‎11-04-2009

KCPSM3 executable, minor annoyances

Hi all,

I am running ISE webpack in Linux, and often use picoblaze and KCPSM3 for my work lately.

Looking around online it seemed DOSbox was the way to run KCPSM3.EXE from Linux.. a bit slow, but it works.

 

However I've noticed that all of my files get saved with all caps filenames, and ISE does not seem to like files where the .VHD extension is capitals. 

 

Originally I was keeping my picoblaze and main vhdl code in separate working directories, and copying over the picoblaze .vhd ROM file  after each compilation, but I decided I would like to have everything in my project directory so I could try using the utility to load the configuration straight into the bit-stream so I wouldn't have to wait for my whole project to re-synthesize (that did not work, DOSBox claimed that a label was missing in the batch file, which was not the case.. looks like I could manually enter the commands, but once again I might get issues with the caps filenames anyway).

 

When I have everything in the same directory, the project loses track of the ROM vhdl file  when it gets overwritten with a new file whose name is all caps, and even if I rename it back, it doesn't work, I have to change it to a totally different name and add it to the project again

 

Has anybody found any solution for this (aside from using a different filename, which I have just started doing)?

 

Cheers,

 

Steve

0 Kudos
6 Replies
dclemmensen
Adventurer
Adventurer
7,019 Views
Registered: ‎12-29-2007

I use the opensource picoasm assembler:

   http://www.xs4all.nl/~marksix/picoasm.html

This is much simpler than using a DOS emulator.

0 Kudos
hvymtlsteve
Observer
Observer
7,022 Views
Registered: ‎11-04-2009

Thanks for the quick answer!
I had originally tried that before doing KCPSM3.EXE in DOSbox, but I could not compile it; I got a few errors:
 
main.cpp: In function ‘int main(int, char**)’:
main.cpp:151: error: ‘strdup’ was not declared in this scope
main.cpp:158: error: ‘strdup’ was not declared in this scope
main.cpp:160: error: ‘strrchr’ was not declared in this scope
main.cpp:170: error: ‘strdup’ was not declared in this scope
main.cpp: In function ‘bool printListing(std::string)’:
main.cpp:261: error: ‘strdup’ was not declared in this scope
main.cpp:262: error: ‘strrchr’ was not declared in this scope
 
And didn't have time to try to figure out what the deal was at the time (I never use C++ anyway).
I suppose it could be handy from now though to have that. 
 
Does it have the direct to bitstream feature like Ken Chapman's application included? Maaaaan that would be nice.
I'm tired of waiting 20 minutes for my rather large VHDL circuit to synthesize, every time I want to change one line of code in my Picoblaze ASM.
0 Kudos
eilert
Teacher
Teacher
7,013 Views
Registered: ‎08-14-2007

Hi Steve,

I also had a hard time putting KCPSM.EXE (and KCPSM3.EXE) in the DOSbox.

My solution was to let the tools work in a separated directory.

I wrote some shell scripts and *.bat files to shuffle the files around.

So in your case after the latest assembler run you would have a line similar to this: 

 

cp ./UPPERCASE.VHD ../lowercase.vhd

 

and everything should be fine.

 

Have a nice synthesis

  Eilert 

 

0 Kudos
dclemmensen
Adventurer
Adventurer
7,014 Views
Registered: ‎12-29-2007

The undefined symbols are from a standard POSIX library. add

#include <string.h>

(or something like it) to the file

 

picoasm is merely an assembler. If you want a whole IDE with otehr capabilties, use kpicoasm. However, I have not experience with it.

 

Ken's toolchain updates the BRAM image in the FPGA image by using the Xilinx utility data2MEM:

  http://ohm.bu.edu/~pbohn/Bio_Delay_Generator/ref_designs/test_designs/KCPSM3/DATA2MEM_assistance/DATA2MEM_how_to_use_it_with_PicoBlaze.txt

I use this same technique for my projects.  I will respond further this evening when I get home. Note: the Xilinx data2MEM documentation is incomprehensible: the link above instead.

0 Kudos
hvymtlsteve
Observer
Observer
6,991 Views
Registered: ‎11-04-2009

Cool, thanks for the replies!

 

Yeah, looking around last night, I found that 

#include <string> probably needs to be replaced with #include <string.h> 

I've been busy debugging my code so I didn't get around to messing with it just yet... I'm almost done with my current project anyway, so I'll look into switching before I start coding up my next thing.

 

Cheers, 

 

Steve

0 Kudos
vanmierlo
Mentor
Mentor
6,955 Views
Registered: ‎06-10-2008

As another alternative you could use pBlazAsm.

 

See: http://forums.xilinx.com/xlnx/board/message?board.id=PicoBlaze&thread.id=634

0 Kudos