From f96a28fc32c57745b1dec8e6feacfd58b33b587d Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Wed, 26 Sep 2012 23:05:38 +0200 Subject: [PATCH] start MigLa Doc --- doc/Illustrations/Recorder_structure.png | Bin 0 -> 21905 bytes doc/Illustrations/Trigger_structure.png | Bin 0 -> 24459 bytes doc/Illustrations/migLa.png | Bin 0 -> 12879 bytes doc/Illustrations/migLa_structure.png | Bin 0 -> 22615 bytes doc/migScope.rst | 111 ++++++++++++++++++++++- 5 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 doc/Illustrations/Recorder_structure.png create mode 100644 doc/Illustrations/Trigger_structure.png create mode 100644 doc/Illustrations/migLa.png create mode 100644 doc/Illustrations/migLa_structure.png diff --git a/doc/Illustrations/Recorder_structure.png b/doc/Illustrations/Recorder_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..45ce1c765ef923990ed1ae2575156a3a5b73f5c1 GIT binary patch literal 21905 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

0(P3Mp{h9V0az4c>=qmlvhyr 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 Aw*UYD literal 0 HcmV?d00001 diff --git a/doc/Illustrations/Trigger_structure.png b/doc/Illustrations/Trigger_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..658202ab209eb85a755e33019ae0a39a5489c9a7 GIT binary patch literal 24459 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 llXMYaqksSMQT59ml!j(WMQUP-By>3S_7 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 literal 0 HcmV?d00001 diff --git a/doc/migScope.rst b/doc/migScope.rst index 43d968cc..d45d578a 100644 --- a/doc/migScope.rst +++ b/doc/migScope.rst @@ -7,7 +7,7 @@ MigScope is a small logic analyzer to be embedded in an FPGA. While free vendor toolchains are generally used by beginners or for prototyping ( situations where having a logic analyser in the design is generally very helpfull) free toolchains are always provided without the proprietary logic analyzer solution. . . :( -Based on Migen, MigScope aims to provide a free and more portable / flexible alternative to vendor's solutions. +Based on Migen, MigScope aims to provide a free and portable / flexible alternative to vendor's solutions. About Migen *********** @@ -100,8 +100,8 @@ Read parameters are: - CSR Address -Example Design --------------- +Examples Design +--------------- de0_nano and de1 examples instanciate a MigIo Core. @@ -112,4 +112,107 @@ The Host Code is in examples/deX/client/test_MigIo.py MigLa ##### -[To Be Done] \ No newline at end of file +Description +----------- + +The MigLa is the Logic Analyser core, it provides N (configurable) Trigger bits and M (Configurable) Data bits: + +.. image:: Illustrations/migLa.png + +Each MigLa instance is composed of a Trigger and a Recorder controlled by the CSR Bus: + +.. image:: Illustrations/migLa_structure.png + +The Trigger is configured by the user to detect particular events on the N Trigger bits. Once detected, the hit signal rise. + +The Recorder is armed by the user and is waiting for the hit signal to rise to store the M Data bits bus. + +Trigger Description +------------------- + +.. image:: Illustrations/Trigger_structure.png + + +The Trigger is an assembly of customized modules: + + - Term : Hit when Trigger bus = (Value* & Mask*) + - Range Detector : Hit when Range Min* < Trigger Bus < Range Max* + - Edge Detector : Hit when : + - (Trigger Bus & Rising Mask*) is Rising + - or (Trigger Bus & Falling Mask*) is Falling + - or (Trigger Bus & Both Mask*) is Both Rising or Falling + +(* dynamically configurable by CSR Bus) + +Each module has a Hit Output that is connected to the Sum. + +The Sum module is a LUT that is configured by the user and define the logical equation between the triggers elements. + +Recorder Description +-------------------- + +.. image:: Illustrations/Recorder_structure.png + +The Sequencer is armed by the user and generate a record window for the Storage module. + +The window offset and size can be dynamically configured (use of a circular buffer) + +Instanciation +------------- + +:: + + term0 = trigger.Term(trig0_width) + trigger0 = trigger.Trigger(trig0_width, [term0]) + recorder0 = recorder.Recorder(dat0_width, record_size) + + migLa0 = migLa.MigLa(MIGLA0_ADDR, trigger0, recorder0) + +This example above describes a MigLa instance with 1 trig element (Term term0) + +Term parameters are: + + - Trigger Width + +Trigger parameters are: + + - Trigger Width + - List if trig elements to use in trigger + +Recorder parameters are: + + - Data Width + - Maximum size of Record + +MigLa parameters are: + + - CSR address : core base Address + - Trigger object to use + - Recorder object to use + +Driver +------ + +To use drivers functions, an interface is defined:: + + csr = Uart2Spi(1,115200,debug=False) + + [...] + + migLa0 = migLa.MigLa(MIGLA_ADDR, trigger0, recorder0, csr) + +MigLa drivers functions will now use our csr interface. Note that it's only useful to define the migLa interface in the Python code that will be executed on the Host, the code that will be translated in HDL don't need it + +Examples Design +--------------- + +de0_nano and de1 examples instanciate a MigLa Core. + +The HDL Code is in examples/deX/top.py + +The Host Code is in examples/deX/client/test_MigLa_0.py and test_MigLa_1.py + +Examples Design +############### + +[To be done] -- 2.30.2