Dangerous Prototypes

Other projects => Open Bench Logic Sniffer => Topic started by: jack.gassett on August 17, 2010, 07:06:35 pm

Title: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on August 17, 2010, 07:06:35 pm
Here is a new test release that makes it possible to dynamically change the memory depth directly from the OLS client by simply selecting channel groups. If four channel groups are selected then 6K of memory will be available, if two channel groups are selected then 12K is available, only one selected group gets the maximum size of 24K.

Blog posting with more info, screencast, and download links. (http://http://www.gadgetfactory.net/?main_page=wordpress&p=111)
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: arhi on August 17, 2010, 08:23:28 pm
yipiiiiiiiiiiiiiiiii trying it "now" :)
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: wayoda on August 17, 2010, 08:56:22 pm
Mission accomplished!
Works as predicted, great!

What wasn't clear to me from the screencast is that it doesn't matter from which channelgroup you sample the 24k. If you request only channelgroup 1 (that would be channels 8-15 with inside numbering scheme, group 0,2,3 disabled) you can sample the full 24k from these 8 channels.
I did not try this on the channnelgroups 2 and 3 because my test-signal is 5V, but I assume I could capture for instance the channelgroups 2+3  at 12k?

RLE only works when all 4 channelgroups are enabled and the depth is set to 6k, that's fine with me. 

Thank you again for starting the project !
Eberhard
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: ian on August 17, 2010, 08:59:45 pm
Great work, and congratulations to Jochem!
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: rotdrop on August 19, 2010, 10:48:56 am
Thanks to Jochem.  I have some thoughts: if this test-release reflects the status of the branch in the SVN, then this dynamic-sample-depth-feature is implemented by treating the BRAM as 32 bits memory, and we loose the "parity" bits in less-than-32 channel mode. In the static sample-depth versions those parity bits are used to mark RLE counts. Wouldn't it in principle be possible to keep the parity bits and treat the sample-memory as 24k 9-bits words all the time? With 32-bits sample depth one would use 4 words to store the data, in 16 bits mode 2 words, in 8-channel-mode 1 word. This would restore the ability to use the 9th bit as RLE marker when not using all the channels.

Thanks again,

Claus
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: Crawford on August 19, 2010, 05:20:30 pm
Folks,

If I understand the demo correctly, the correct bitmap configuration is chosen depending on the number of channels chosen.  This is purely the trade-off between the number of channels versus the number of samples, given a set amount of RAM on the FPGA.

So far, so good.. but it appears that the Java client is clueless as to the trade-off above, and you can select more samples for more channels than is available.  Hence the 'signal wrapping' on the demos.

This is sort of obvious, but I suggest that the client could be modified to recognize (or store) the total amount of available RAM, and do a calculation that given the number of channels chosen, gray/grey out the sample sizes that don't make sense.  It could even be set to automatically choose the greatest available sample depth.

As Joel used to say "What do you think, sirs?"

-Crawford
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on August 19, 2010, 05:55:45 pm
@Crawford,

Yes, I think the Java client should definitely implement a feature where channel group boxes are greyed out depending on sample depth or something. I was just hoping that someone who was good with Java would take this coding on...
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jawi on August 19, 2010, 06:34:48 pm
[quote author="jack.gassett"]
Yes, I think the Java client should definitely implement a feature where channel group boxes are greyed out depending on sample depth or something. I was just hoping that someone who was good with Java would take this coding on...
[/quote]

I was thinking about implementing this in my alternative client. I'll keep you posted...
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: wayoda on August 19, 2010, 07:17:18 pm
Quote
Yes, I think the Java client should definitely implement a feature where channel group boxes are greyed out depending on sample depth or something.
While the topic is hot ... I guess it should be the other way round.

The number channels to have to capture is usually not debatable. So the sample depth ComboBox should be the slave of the Channelgroup-selector.

Eberhard 
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: Crawford on August 19, 2010, 08:36:39 pm
@Jack

Thanks for the response.  If I was better at Java, I would volunteer.

@Jawi

Go for it... I still need to try your client out.  (I'd be happy to beta test this).

@Eberhard 

Yes, that's what I was thinking: Which channels are selected is the primary choice, and the number of samples is the dependent/limited value

-Crawford
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jawi on August 20, 2010, 12:06:40 pm
I've just uploaded a new beta release (b3) (http://http://www.lxtreme.nl/ols/ols-0.8.2-b3.tar.gz) of my alternative client that supports the dynamic sample size. In case you select a sample count that is larger than would be supported through the selected channel groups, a warning is given upon capturing. Also, I've added a new option to automatically select the (maximum) sample count based on the enabled channel groups.

@Crawford, if you would like to test this that would be great!
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: wartos on August 20, 2010, 12:42:15 pm
@jawi
I didn't had much time to find out what is exactly wrong, but this is the error message I got trying to execute beta 3:

Code: [Select]

Artemis:~ Ward$ bash /Users/Ward/Downloads/ols-0.8.2-b3/run.sh
: command not foundds/ols-0.8.2-b3/run.sh: line 2:
Exception in thread "main" java.lang.NoClassDefFoundError: nl/lxtreme/ols/runner/Runner
Caused by: java.lang.ClassNotFoundException: nl.lxtreme.ols.runner.Runner
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Artemis:~ Ward$

fwiw: beta 2 gives the same error...

[sub:]edit:
oops, just noticed that this is not the appropriate topic, sorry![/sub:]
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jawi on August 20, 2010, 03:47:27 pm
[quote author="wartos"]

@jawi
I didn't had much time to find out what is exactly wrong, but this is the error message I got trying to execute beta 3:

Code: [Select]
Artemis:~ Ward$ bash /Users/Ward/Downloads/ols-0.8.2-b3/run.sh 
: command not foundds/ols-0.8.2-b3/run.sh: line 2:
Exception in thread "main" java.lang.NoClassDefFoundError: nl/lxtreme/ols/runner/Runner
[/quote]

the run script assumes you're running it from the base installation folder, so it cannot find the classes & dependencies it need. Try:
Code: [Select]
 $ cd /Users/Ward/Downloads/ols-0.8.2-b3/
 $ bash ./run.sh
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: wayoda on August 20, 2010, 04:08:11 pm
[quote author="wartos"]

@jawi
I didn't had much time to find out what is exactly wrong, but this is the error message I got trying to execute beta 3:
[/quote]

Putting this
Code: [Select]
#!/bin/sh
cd "$(dirname -- "${0}")"
java -Dnl.lxtreme.ols.bundle.dir=plugins/ -cp "bin/*" nl.lxtreme.ols.runner.Runner
into "run.sh" makes it independent of the current working dir (on unix based systems).
 
Eberhard
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jawi on August 21, 2010, 09:43:12 am
[quote author="wayoda"]
Putting this
Code: [Select]
#!/bin/sh
cd "$(dirname -- "${0}")"
java -Dnl.lxtreme.ols.bundle.dir=plugins/ -cp "bin/*" nl.lxtreme.ols.runner.Runner
into "run.sh" makes it independent of the current working dir (on unix based systems).
[/quote]

Very nice! I've updated the run scripts for both Windows and Unix-based systems to work that way. Thanks for the contribution.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: MarkDixon on August 24, 2010, 08:58:41 pm
I get an error when I try and run the Analyzer from the 2.12TestRelease. I double click on the "run_java_client.bat" and a DOS window opens, then closes. I try same .bat file from DOS myself and the error that comes up is:
Error while invoking application: null

Any suggestions?

I can open the alternative client ok and capture ok.

I have update the f/w to 2.12 as well.

Cheers for the help.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on August 24, 2010, 09:50:23 pm
@MarkDixon

That error message means that you don't have rxtx installed in the version of Java that is being picked up in the path.

You can install rxtx or just copy the analyzer.jar file to a newer version of the Full software.

Jack.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: MarkDixon on August 25, 2010, 10:34:34 am
Thanks for the info Jack. I will give that a try when I get home!

Thanks
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: ItaiN on September 23, 2010, 07:02:48 pm
Hello, I'm a complete newbie here. I just got the open logic analyzer, installed 2.12 and it's already been helpful.
(Using Fedora 11 Linux)

A minor bug (or is it a feature?) when I change sampling rate the beginning of the sample is still using the old parameters. See attached image with wrong data highlighted. I sampled once with low rate and then changed the to higher sampling rate and captures again. Signals should have repeating pattern.

Off-Topic newbie question: where can I learn more on using complex triggers?
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: ian on September 24, 2010, 08:40:13 am
Quote
where can I learn more on using complex triggers?

I'm sorry, I don't think we have a guide for it yet. The Oak Micros SUMP handbook might have something. If you manage to learn a bunch about it, would you please share a summary we can add to the documentation?

http://oakmicros.com/content/downloads/ ... Downloads/ (http://oakmicros.com/content/downloads/View-category/Other-Oak-Micros-Downloads/)
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: ItaiN on September 29, 2010, 09:08:54 pm
[quote author="ian"]
http://oakmicros.com/content/downloads/ ... Downloads/ (http://oakmicros.com/content/downloads/View-category/Other-Oak-Micros-Downloads/)
[/quote]
Thanks, it looks good. It will take me some time to learn all the options, and probably much more time to actually use them.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jgmcc on October 19, 2010, 05:02:01 am
Hi,

where are the VHDL sources for the 2.12 release?  The dynamic sample depth feature doesn't appear to be in trunk on the Gadget Factory SVN.  I see something on the JochemMMC branch but the comments indicate it is not working.  Are the 2.12 sources in SVN?

Also, how do I build the load?  Which version of ISE (looks like 11.1 from the trunk project file)?  And is Build_All.cmd the official way to build the images?

I've checked out trunk and used Build_All to build it with ISE 11.1 but would rather play with the 2.12 version.  Actually, I translated the windows .cmd file to a bash shell script since I'm using Linux, but is seems to work fine.  I have an OpenBench Logic Sniffer from Seeed Studio I'd like to upgrade and practice some VHDL development on.

Thanks, John McC.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on October 19, 2010, 06:15:19 pm
Hello John McC,

Sorry about that, it looks like I was so excited about it working that I did not check the changes into SVN.

I just updated the JochemMMC branch with the changes for Test Release 2.12.

The Build_All.cmd was an easy way to build the multiple bitstreams, but Test Release 2.12 brings everything into one bitstream so there is no need for the build_all.cmd anymore. You can just synthesize inside Project Navigator.

Let me know if you run into any other issues, we'll work through them. I hope to get this branch merged into the trunk and start debugging the RLE issues in the next couple of weeks. I'm wrapping up my current big project (Papilio Barcode Genie kit (http://http://gadgetforge.gadgetfactory.net/gf/project/barcodegenie/)) and should be releasing it over at Gadget Factory in the next few days. This will free me up to move forward with the OLS.

Thanks,
Jack.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jgmcc on October 20, 2010, 01:58:37 am
Cool, that looks better.  However, when I now try to synthesize in ISE 11.1 I get the following:
[tt:]Started : "Convert HDL Source".
terminate called after throwing an instance of 'Xdm_Exception::UnsupportedFileFormatVersion'

Process "Convert HDL Source" failed

Started : "Convert HDL Source".
terminate called after throwing an instance of 'Xdm_Exception::UnsupportedFileFormatVersion'

Process "Convert HDL Source" failed[/tt:]
Could this be due to the two generated DCM instances that appear to be ISE 12.2?

./ipcore_dir/DCM8to50.vhd:--       /     Version : 12.2
./ipcore_dir/DCM32to50.vhd:--       /     Version : 12.2

Should I just switch to ISE 12.2?  Or the most recent 12.3?  Which version would you recommend?


Cheers,
John McC.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on October 20, 2010, 07:25:17 am
I would go with the most recent, if it doesn't work you can just revert from svn and start over with 12.2.

Jack
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jgmcc on October 21, 2010, 02:12:10 am
Hi again Jack,

looks like something is still missing.  The JochemMMC branch is failing timing on derived clock1 constraints that look related to the  RAM6_Impl.Inst_sram/Sample_RAM/Address_12 source signal (and others starting with the same prefix).  I assume that is a problem--though I don't know enough about ISE and VHDL yet to be sure.  I don't see this with the trunk version. Is it possible you need to check in more files?  It did build a bit/mcs file but I'm guessing it has bad timing.

I get the same result with ISE 12.3 and 12.2.


Thanks,
John McC.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on October 21, 2010, 07:35:35 pm
John McC.,

One thing that is frustrating about the Xilinx ISE Project Navigator is that it completely overwhelms you with error messages that 99% of the time have no bearing on the end result of your project. I have never had any single project synthesize without some scary looking error messages pop up. You have to take it with a grain of salt and look into error messages when a project doesn't synthesize. I receive the same failing constraint error message that you do but everything works fine. This is one of the reasons I release Test Releases for a fairly long time before making it official. Test Release 2.12 has been working for a lot of people for a good amount of time now without any complaints.

Digging further into the error message it seems to be caused by some default constraint placed on the pin that is used for the optional "External Clock" that can be used to cascade OLS's. There seems to be a pretty high 10ns constraint, I'm not even sure where this constraint comes from, its not in the ucf file. It appears that the changes for the dynamic memory have changed the timing structure enough that this 100Mhz constraint is no longer being met. So the implication of this is that if someone connects an external clock to the OLS pin they may have problems getting it to be stable above 50Mhz. I'm not so sure this is something to be very worried about.

Jack.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: rsdio on October 21, 2010, 11:24:24 pm
[quote author="jack.gassett"]Digging further into the error message it seems to be caused by some default constraint placed on the pin that is used for the optional "External Clock" that can be used to cascade OLS's. There seems to be a pretty high 10ns constraint, I'm not even sure where this constraint comes from, its not in the ucf file. It appears that the changes for the dynamic memory have changed the timing structure enough that this 100Mhz constraint is no longer being meant. So the implication of this is that if someone connects an external clock to the OLS pin they may have problems getting it to be stable above 50Mhz. I'm not so sure this is something to be very worried about.[/quote]Is there a way in the tools to mark that pin as "disabled" for external clocking purposes?  If so, the error messages might go away.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jack.gassett on October 22, 2010, 05:49:36 pm
There is a way to exclude nets from a timing report that would make the warning message go away. But then there are tons of other warning messages too, you will never get all the warning messages to go away. It is something that people complain about at Xilinx events all the time.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: jgmcc on October 23, 2010, 02:35:14 am
Hi Jack,

As long as you're getting the same errors I am, that's fine.  I've still got a ways to go understanding those error/analysis reports.  In any case, I just wanted to be sure I have the latest version of the VHDL.  Now to try upgrading my OpenBench Logic Sniffer...


Thanks,
John McC.
Title: Re: Test Release 2.12 - Dynamic Sample Depth
Post by: rsdio on October 23, 2010, 02:54:50 am
[quote author="jack.gassett"]There is a way to exclude nets from a timing report that would make the warning message go away. But then there are tons of other warning messages too, you will never get all the warning messages to go away.[/quote]Well, entirely excluding a net doesn't seem like a good idea, because you want the warnings which might affect you.  But if you can only exclude certain aspects of the timing report, then that might be good.

It's just that I recall coming across some special mode settings for pins that marked them as bus keepers or Hi-Z (high-impedance) in response to some questions here.

Searching...
Quote
Pull-Up, Pull-Down, and Keeper Circuits
Three-state output buffers and bidirectional buffers can have a pull-up resistor, a pulldown resistor, or a keeper circuit. Control this feature by adding the appropriate symbol to the output net of the OBUFT or IOBUF (PULLUP, PULLDOWN, or KEEPER).
It's a long-shot, but I'm guessing that certain assignments of a given pin might make the warnings about clock applications go away.  But that's assuming a very intelligent compiler.

Quote
It is something that people complain about at Xilinx events all the time.
Ok, you're all way ahead of me, I'm basically just guessing - based on very brief perusal of the data sheets.

( ! ) Fatal error: Uncaught exception 'Elk_Exception' with message 'Please try again. If you come back to this error screen, report the error to an administrator.' in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
( ! ) Elk_Exception: Please try again. If you come back to this error screen, report the error to an administrator. in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
Call Stack
#TimeMemoryFunctionLocation
10.01452180248session_write_close ( )...(null):0
20.01482311840ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.01482312616Database_MySQL->query( ).../DatabaseHandler.php:119
40.05982451344Database_MySQL->error( ).../Db-mysql.class.php:273