FPGARelated.com
Forums

PacoBlaze 2.2

Started by Pablo Bleyer Kocik May 29, 2007
 Dear group:

 PacoBlaze 2.2 has been released. This version solves some bugs that
were still lurking in the stack and interrupt manipulation. The cores
have also received more testing, and more debug information has been
added to simulations enabled with the HAS_DEBUG macro. Instructions
also have now a one-hot encoding format that is used when
USE_ONEHOT_ENCODING is defined. Unfortunately, the compatibility with
Icarus Verilog is broken but I am still working on it.

 The KCAsm assembler has been tweaked a bit to accept constructs in
the form of the original KCPSM assembler, so that most PSM files
should be accepted with little or no modification.

 The PacoBlaze web site is at http://bleyer.org/pacoblaze, where you
can find more information and links to the source distribution.

 I can't end this post without referring to the tragic and unexpected
loss of Rodney Smith. My deepest condolences to his family and
friends. He was one of the pioneers and pillars of this industry that
has vamped digital design in a new era. He will be really missed.

 Warmest regards.

--
PabloBleyerKocik / "I wish I could sleep in a warm sleeping bag.
 pablo          / No matter what happens I am going to climb
McKinley."
  @bleyer.org  / -- Naomi Uemura, 1984

Pablo Bleyer Kocik wrote:
> Dear group: > > PacoBlaze 2.2 has been released. This version solves some bugs that > were still lurking in the stack and interrupt manipulation. The cores > have also received more testing, and more debug information has been > added to simulations enabled with the HAS_DEBUG macro. Instructions > also have now a one-hot encoding format that is used when > USE_ONEHOT_ENCODING is defined. Unfortunately, the compatibility with > Icarus Verilog is broken but I am still working on it. > > The KCAsm assembler has been tweaked a bit to accept constructs in > the form of the original KCPSM assembler, so that most PSM files > should be accepted with little or no modification. > > The PacoBlaze web site is at http://bleyer.org/pacoblaze, where you > can find more information and links to the source distribution.
Hi Pablo, Can you add a simple table of Options/Resource, along the lines of the one here ? http://www.latticesemi.com/Mico8 -jg
On May 29, 4:40 am, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> Pablo Bleyer Kocik wrote: > > Dear group: > > > PacoBlaze 2.2 has been released. This version solves some bugs that > > were still lurking in the stack and interrupt manipulation. The cores > > have also received more testing, and more debug information has been > > added to simulations enabled with the HAS_DEBUG macro. Instructions > > also have now a one-hot encoding format that is used when > > USE_ONEHOT_ENCODING is defined. Unfortunately, the compatibility with > > Icarus Verilog is broken but I am still working on it. > > > The KCAsm assembler has been tweaked a bit to accept constructs in > > the form of the original KCPSM assembler, so that most PSM files > > should be accepted with little or no modification. > > > The PacoBlaze web site is athttp://bleyer.org/pacoblaze, where you > > can find more information and links to the source distribution. > > Hi Pablo, > Can you add a simple table of Options/Resource, along the lines of > the one here ? > > http://www.latticesemi.com/Mico8 > > -jg
Jim, the link is broken. What kind of table are you referring to? PacoBlaze has been written from scratch following Xilinx's documentation of their PicoBlaze processor, so any resource configuration (registers, instructions, scratchpad memory) applies to PacoBlaze. The only exception are my own extensions for PacoBlaze3m (16-bit ALU with multiplier). Regards.
Pablo Bleyer Kocik wrote:
>> http://www.latticesemi.com/Mico8 > Jim, the link is broken.
http://www.latticesemi.com/mico8 is the correct link.
> What kind of table are you referring to?
Ressource usage (i.e. number of slices, registers and such) depending on what FPGA is used and what features are implemented. cu, Sean -- My email address is only valid until the end of the month. Try figuring out what the address is going to be after that...
Pablo Bleyer Kocik wrote:
>> >>http://www.latticesemi.com/Mico8 >> >>-jg > > > Jim, the link is broken.
Oops, try http://www.latticesemi.com/mico8 On the page that jumps to, they tabulate Device LUTs Registers SLICEs f MAX (MHz) I thought a similar simple summary would be good for your core, too? What kind of table are you referring to?
> PacoBlaze has been written from scratch following Xilinx's > documentation of their PicoBlaze processor, so any resource > configuration (registers, instructions, scratchpad memory) applies to > PacoBlaze. The only exception are my own extensions for PacoBlaze3m > (16-bit ALU with multiplier). > > Regards. >
On May 29, 6:49 pm, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> Pablo Bleyer Kocik wrote: > > >>http://www.latticesemi.com/Mico8 > > >>-jg > > > Jim, the link is broken. > > Oops, try > > http://www.latticesemi.com/mico8 > > On the page that jumps to, they tabulate > > Device LUTs Registers SLICEs f MAX (MHz) > > I thought a similar simple summary would be good for your core, too?
LOL. It never occurred to me to change the uppercase M to a lowercase. ;-) The implementation depends very much on the device and post-route tweaking, but for Xilinx devices I get ~200 slices and speeds around 100MHz for PB3. Regards.
On May 29, 3:37 am, Pablo Bleyer Kocik <pabloble...@hotmail.com>
wrote:
> Dear group: > > PacoBlaze 2.2 has been released. This version solves some bugs that > were still lurking in the stack and interrupt manipulation. The cores > have also received more testing, and more debug information has been > added to simulations enabled with the HAS_DEBUG macro. Instructions > also have now a one-hot encoding format that is used when > USE_ONEHOT_ENCODING is defined. Unfortunately, the compatibility with > Icarus Verilog is broken but I am still working on it. > > The KCAsm assembler has been tweaked a bit to accept constructs in > the form of the original KCPSM assembler, so that most PSM files > should be accepted with little or no modification. > > The PacoBlaze web site is athttp://bleyer.org/pacoblaze, where you > can find more information and links to the source distribution. > > I can't end this post without referring to the tragic and unexpected > loss of Rodney Smith. My deepest condolences to his family and > friends. He was one of the pioneers and pillars of this industry that > has vamped digital design in a new era. He will be really missed. > > Warmest regards. > > -- > PabloBleyerKocik / "I wish I could sleep in a warm sleeping bag. > pablo / No matter what happens I am going to climb > McKinley." > @bleyer.org / -- Naomi Uemura, 1984
Pablo, I was also wondering if you fixed the issues with the assembler that I wrote to you about last June?
>From email sent to you.
Pablo, I encountered the follow error: java -Dkcpsm=3 -Dbram=18 -Dmodule=isp -jar c:/clcfpga2/pacoblaze-2.1b1/ KCAsm.jar isp.psm isp.rmh Exception in thread "main" TokenMgrError: Lexical error at line 668, column 23. Encountered: "(" (40), after : "" at KCAsmTokenManager.getNextToken(KCAsmTokenManager.java:539) at KCAsm.jj_scan_token(KCAsm.java:629) at KCAsm.jj_3_15(KCAsm.java:479) at KCAsm.jj_3R_9(KCAsm.java:466) at KCAsm.jj_3_17(KCAsm.java:381) at KCAsm.jj_2_17(KCAsm.java:340) at KCAsm.Arguments(KCAsm.java:213) at KCAsm.CommandExpression(KCAsm.java:152) at KCAsm.Expression(KCAsm.java:100) at KCAsm.Start(KCAsm.java:84) at KCAsm.main(KCAsm.java:41) The line of code that cause this error is pointed to below. load Areg, seedata0 ; pointer to eeprom parameters fetch accm, fpwmminus0 ; pwmminus0 --> store accm, (Areg) ; add Areg, 01 ; I also noticed that there is a compatibility issue with the Xilinx kcpsm assembler. It defaults to hex format for numbers while yours defaults to decimal. This caused some of my constant definitions that were hex values to give an errors thanks for you help. Dave Colson
On May 30, 4:14 pm, "dscol...@rcn.com" <dscol...@rcn.com> wrote:
> Pablo, > > I was also wondering if you fixed the issues with the assembler that I > wrote to you about last June? > > >From email sent to you. >
Hello Dave. Yes, these issues have been fixed. The assembler now accepts bounded '()' tokens; just as a visual convenience since they are converted to regular arguments. The default format is now hexadecimal. If a name is not found in the environment, and if that word is a valid hex number, it gets converted to the latter. It's a shame the kcpsm assembler treats numbers these way, it is not the default format of most assemblers, and usually numbers in a different radix are decorated in some way to avoid confusion or a clash with valid labels. KCAsm supports binary (%) octal (@), decimal (&), and hexadecimal ($) modifiers. KCAsm still accepts names only in valid C format - the identifiers can't start with a number or symbol different to the underscore (_). Please tell me if you find other issues. Best regards. -- PabloBleyerKocik /"But what... is it good for?" pablo / -- 1968 Engineer at IBM's Advanced Computing @bleyer.org / Systems Division, commenting on the microchip
On May 30, 8:14 pm, Pablo Bleyer Kocik <pabloble...@hotmail.com>
wrote:
> On May 30, 4:14 pm, "dscol...@rcn.com" <dscol...@rcn.com> wrote: > > > Pablo, > > > I was also wondering if you fixed the issues with the assembler that I > > wrote to you about last June? > > > >From email sent to you. > > Hello Dave. > > Yes, these issues have been fixed. The assembler now accepts bounded > '()' tokens; just as a visual convenience since they are converted to > regular arguments. The default format is now hexadecimal. If a name is > not found in the environment, and if that word is a valid hex number, > it gets converted to the latter. It's a shame the kcpsm assembler > treats numbers these way, it is not the default format of most > assemblers, and usually numbers in a different radix are decorated in > some way to avoid confusion or a clash with valid labels. KCAsm > supports binary (%) octal (@), decimal (&), and hexadecimal ($) > modifiers. > > KCAsm still accepts names only in valid C format - the identifiers > can't start with a number or symbol different to the underscore (_). > > Please tell me if you find other issues. > > Best regards. > > -- > PabloBleyerKocik /"But what... is it good for?" > pablo / -- 1968 Engineer at IBM's Advanced Computing > @bleyer.org / Systems Division, commenting on the microchip
Pablo, Thanks for the fixes. However, I Just found another "bug" more of a compatibility issue. KCPSM allows the following renaming of registers as follows: first namereg namereg s4, clkcnt ; temp register : : later renamed S4. however, KCPSM requires you use the name you renamed S4 to previously. namereg clkcnt, DIFF0 ; Here is the output of KCasm I don't know if this one will be an easy one the fix. C:\clcfpga2\PACOBL~1.2\test>asmkcpsm isp C:\clcfpga2\PACOBL~1.2\test>java -Dkcpsm=3 -Dbram=18 -Dmodule=isp -jar c:/clcfpga2/pacoblaze- 2.2/KCAsm.jar isp.psm isp.rmh Exception in thread "main" java.lang.IllegalArgumentException: Bad register declaration: name reg(clkcnt,DIFF0) at line 1358 at Assembler.parse(Assembler.java:155) at Assembler3.<init>(Assembler3.java:55) at KCAsm.main(KCAsm.java:48) C:\clcfpga2\PACOBL~1.2\test> Best regards Dave
On May 31, 10:04 am, "dscol...@rcn.com" <dscol...@rcn.com> wrote:
> Pablo, > > Thanks for the fixes. However, I Just found another "bug" more of a > compatibility issue. KCPSM allows the following renaming of registers > as follows: > first namereg > namereg s4, clkcnt ; temp register > : > : > later renamed S4. however, KCPSM requires you use the name you renamed > S4 to previously. > > namereg clkcnt, DIFF0 ; >
Thanks, Dave. I will look into that. Regards.