Hi all,

i'm new to this list and i'm currently working on improving the DSLogic
port and finally adding support for U3Pro16
(https://sigrok.org/wiki/DreamSourceLab_DSLogic_U3Pro16).
I plan to add the U3Pro16 to the existing dreamsourcelab-dslogic device
driver even though the API has changed a bit, the majority of the code
is common and creating a new device would lead to lots of code
duplication - but we can discuss separately.

Prior to adding support for U3Pro16 I made a few improvements to the
existing device driver since U3Pro16 is a high speed device with up to
1GHz sample rate. I found out that the bottleneck in the existing driver
is the deinterleave_buffer function which converts the received data
from DSLogic to the format sigrok is expecting. The existing implementation
looped over every single bit, making it inefficient assuming that a typical 
trace
contains little signal changes compared to the sample rate. I changed
the implementation in a way that it forward-copies the last block of 64
words, make a mem compare of the last received data from DSLogic with
the latest received one and only if there is a change I apply the
bit-wise operation.

I'm not sure how you guys prefer to handle patches - i've read that
submitting them in the email is fine as well as creating pull requests.
For now i created a pull request: 
https://github.com/sigrokproject/libsigrok/pull/167

How did I test that? Well, i have a working port already for U3Pro16 :-)
But I would like to upstream things step-by-step so that changes are
easier and more obvious to follow.

I will prepare another pull request once this one is merged where I
introduced a dedicated worker-thread in dreamsourcelab-dslogic to
process/deinterleave the received the next USB request is already
handled in parallel.

Christian.


_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to