Open Cores

Easy to use open IP modules for your Amani programmable logic development system. Just copy the .zip file to your project directory, unzip, and add the BSF to your project via the schematic entry method.

debounce

Files: debounce.zip
Description: Demonstrative switch debouncer utilizing an 8-bit counter. At 32MHz the debounce time is 8 microseconds. The lower the clock speed the better the results. Use the slowest clock as practical and decrease the counter size to minimize macrocell usage.

dig4sevseg

Files: dig4sevseg.zip
Description: Used to drive common anode, 4-digit, 7-segment displays. Binary coded decimal (BCD) inputs A[3..0], B[3..0], C[3..0], D[3..0]. Digit 4 = A, Digit 3 = B, 2 = C, 1 = D. Optimized for 32MHz clock, useable at other speeds. Ideal for ASMsevseg.

digi_adc

Files: digi_adc.zip
Description: Interface to Digilent’s Pmod AD1 analog to digital converter. Connects to the AD1 via SPI and to the user’s application via parallel data port with start and data_ready control signals.

led_blink_1sec

Files: led_blink_1sec.zip
Description: Blinks one LED at a one second interval provided a 32MHz clock. Resource intensive, this module is useful to test and demonstrate the Amani functionality after board construction or component replacement.

mem_23k256_addr_256kb

Files: mem_23k256_addr_256kb.zip
Description: Bridge between the Arduino or similar controller and multiple SRAM devices over an SPI interface. Extend the Arduino’s SRAM by addressing multiple 23K256 SRAM devices. Complete project description found here.

pullup_driver

Files: pullup_driver.zip
Description: Patch for driving a pull-up interface. Eight high and low inputs drive their respective outputs to high-impedance and logic-zero.

pwm_engine

Files: pwm_engine.zip
Description: Self-fading pulse width modulator. Ideal for fading LEDs or scanning servos.

pwm_engine_1k

Files: pwm_engine_1k.zip
Description: Pulse width modulator for servo and H-Bridge motor applications where PWM period is 1ms. Pulse-width set by 8-bit pwm_set input; non-registered/latched. User provides 1kHz clock.

quad_enc_cntr

Files: quad_enc_cntr.zip
Description: Quadrature decoder for Digilent PModENC or other rotary encoder module. Provides rotational counts incrementing counter register in one direction; decreasing in opposite direction.

quad_enc_pos

Files: quad_enc_pos.zip
Description: Positional quadrature decoder for Digilent PModENC or other rotary encoder module. Provides shaft position via 20 increments of 4, 0 – 76. Switch bounce may corrupt reading; suggest signal scrubbers to remove switch-bounce.

quad_enc_vel

Files: quad_enc_vel.zip
Description: Quadrature decoder for Digilent PModENC or other rotary encoder module. Provides shaft rotation velocity, non-directional, timed to resolve “hand-dialing” speeds. Suggested 32MHz clock.

quad_enc_vel_hs

Files: quad_enc_vel_hs.zip
Description: Quadrature decoder designed to interface with any generic rotary quadrature encoder. Provides shaft rotation velocity. Ideal with encoder coupled with 6700 RPM motor.

radio_ping

Files: radio_ping.zip
Description: Complete module for implementing an ultrasonic ranger that communicates range “pings” over an FM radio. For use with the Arduino, and ultrasonic transducer, and the NS73MFM FM transmitter module.

sonic_tx

Files: sonic_tx.zip
Description: Ultrasonic waveform generator and receiver complete with blanking for use with a single ultrasonic transducer. Provides a PWM range pulse as well as a digital representation of the full range echo complex.

spi_8bit_async

Files: spi_8bit_async.zip
Description: 8-bit SPI slave tranceiver with internal parallel data port.

spi_rcvr

Files: spi_rcvr.zip
Description: SPI slave receiver only. Synchronized to the Amani 64 32MHz clock.