templates/web/index.md.erb in origen_spi-0.1.1 vs templates/web/index.md.erb in origen_spi-0.2.0

- old
+ new

@@ -1,87 +1,87 @@ -% render "layouts/basic.html" do - -%# HTML tags can be embedded in mark down files if you want to do specific custom -%# formatting like this, but in most cases that is not required. -<h1><%= Origen.app.namespace %> <span style="font-size: 14px">(<%= Origen.app.version %>)</span></h1> - -### Purpose - -This plugin implements SPI protocol with the tester acting as the master. There are 4 pins standard to SPI, -however only sclk is required by this plugin. Any pins that aren't provided are ignored. This plugin seeks -to be very flexible given that the SPI standard is itself very flexible. - -### How To Install - -In your Gemfile add: - -~~~ruby -gem "<%= Origen.app.name %>" -~~~ - -or if your application is a plugin, then add this to your <code>.gemspec</code> - -~~~ruby -spec.add_runtime_dependency "<%= Origen.app.name %>", ">= <%= Origen.app.version %>" -~~~ - -__NOTE:__ In the case of a plugin, you will also need to <code>require '<%= Origen.app.name %>'</code> somewhere in your environment. - - -### How To Use - -The spi driver is intended to be instantiated as a sub_block. The configuration can be passed in as a hash and / or -can be changed after instantiation. See API for more details. - -~~~ruby - sub_block :spi, class_name: 'OrigenSpi::Driver', - sclk_pin: dut.pin(:sclk), - mosi_pin: dut.pin(:mosi), - miso_pin: dut.pin(:miso), - ss_pin: dut.pin(:ss), - # :rl - return low - input data changes while sclk is low and is latched on rising edge - clk_format: :rl, - # drive state of 0 activates the slave port - ss_active: 0, - # wait time after ss_active and before any sclk activity - clk_wait_time: {time_in_cycles: 2}, - # number of sclks per tester.cycle - clk_multiple: 1, - data_order: :lsb0 -~~~ - -~~~ruby - # configuration can be changed after instantiation like this - dut.spi.clk_multiple = 80 - dut.spi.miso_compare_cycle = 79 - dut.spi.ss_pin = nil -~~~ - -Once the driver is instantiated shift operations can be performed by calls to the shift method (overlay/store/masking etc. is handled): - -~~~ruby - # shift out, masking input compares - dut.spi.shift master_out: 0xFF, size: 32 - - # shift out, register - size doesn't need to be passed when register is provided - dut.spi.shift master_out: dut.my_reg - - # shift in read examples: - dut.spi.shift master_in: 0xFF, size: 32 - - # provide a register to mask or store (mark the bits appropriately) - dut.spi.shift master_in: dut.my_reg - - # simultaneous shift in/out - dut.spi.shift master_out: some_value_or_reg, master_in: some_other_value_or_reg -~~~ - - -### How To Setup a Development Environment - -To setup a development environment: - -~~~ - git clone https://github.com/Origen-SDK/origen_spi.git -~~~ - -% end +% render "layouts/basic.html" do + +%# HTML tags can be embedded in mark down files if you want to do specific custom +%# formatting like this, but in most cases that is not required. +<h1><%= Origen.app.namespace %> <span style="font-size: 14px">(<%= Origen.app.version %>)</span></h1> + +### Purpose + +This plugin implements SPI protocol with the tester acting as the master. There are 4 pins standard to SPI, +however only sclk is required by this plugin. Any pins that aren't provided are ignored. This plugin seeks +to be very flexible given that the SPI standard is itself very flexible. + +### How To Install + +In your Gemfile add: + +~~~ruby +gem "<%= Origen.app.name %>" +~~~ + +or if your application is a plugin, then add this to your <code>.gemspec</code> + +~~~ruby +spec.add_runtime_dependency "<%= Origen.app.name %>", ">= <%= Origen.app.version %>" +~~~ + +__NOTE:__ In the case of a plugin, you will also need to <code>require '<%= Origen.app.name %>'</code> somewhere in your environment. + + +### How To Use + +The spi driver is intended to be instantiated as a sub_block. The configuration can be passed in as a hash and / or +can be changed after instantiation. See API for more details. + +~~~ruby + sub_block :spi, class_name: 'OrigenSpi::Driver', + sclk_pin: dut.pin(:sclk), + mosi_pin: dut.pin(:mosi), + miso_pin: dut.pin(:miso), + ss_pin: dut.pin(:ss), + # :rl - return low - input data changes while sclk is low and is latched on rising edge + clk_format: :rl, + # drive state of 0 activates the slave port + ss_active: 0, + # wait time after ss_active and before any sclk activity + clk_wait_time: {time_in_cycles: 2}, + # number of sclks per tester.cycle + clk_multiple: 1, + data_order: :lsb0 +~~~ + +~~~ruby + # configuration can be changed after instantiation like this + dut.spi.clk_multiple = 80 + dut.spi.miso_compare_cycle = 79 + dut.spi.ss_pin = nil +~~~ + +Once the driver is instantiated shift operations can be performed by calls to the shift method (overlay/store/masking etc. is handled): + +~~~ruby + # shift out, masking input compares + dut.spi.shift master_out: 0xFF, size: 32 + + # shift out, register - size doesn't need to be passed when register is provided + dut.spi.shift master_out: dut.my_reg + + # shift in read examples: + dut.spi.shift master_in: 0xFF, size: 32 + + # provide a register to mask or store (mark the bits appropriately) + dut.spi.shift master_in: dut.my_reg + + # simultaneous shift in/out + dut.spi.shift master_out: some_value_or_reg, master_in: some_other_value_or_reg +~~~ + + +### How To Setup a Development Environment + +To setup a development environment: + +~~~ + git clone https://github.com/Origen-SDK/origen_spi.git +~~~ + +% end