Skip to main content

A cocotb extension for HyperBus controllers

Project description

cocotb extension for HyperBus

PyPI version

Installation

Installation from pip (release version, stable):

pip install cocotbext-hyperbus

Installation for active development:

git clone https://github.com/meeeeet/cocotbext_hyperbus
pip install -e cocotbext_hyperbus

Documentation and usage examples

See the tests directory for complete testbenches using these modules.

Configuration

  1. Alter the following parameter in the Infineon HyperRAM RTL code to avoid the cocotb having to wait a long time and the simulation crashing.

    // tdevice values: values for internal delays
    // power-on reset
    specparam tdevice_VCS    = 150;
    // Deep Power Down to Idle wake up time
    specparam tdevice_DPD    = 150;
    // Exit Event from Deep Power Down
    specparam tdevice_DPDCSL = 20;
    // Warm HW reset
    specparam tdevice_RPH    = 40;
    // Refresh time
    specparam tdevice_REF100 = 40;
    // Page Open Time
    specparam tdevice_PO100 = 40;
    
  2. Make a wrapper module for better experience and make sure to use signal names in lowercase in wrapper module as shown in test/wrapper_ram.v.

HyperBus

The HyperBusController class can be used to drive and receive data from HyperRAM.

To use these modules, import the one you need and connect it to the DUT:

from cocotbext_hyperbus import HyperBusController
@cocotb.test()
async def sample_test(dut):
    hbc=HyperBusController(dut)

Methods

  • Reset(dut): Reset the dut
  • WriteReg(addr,data): Write data into register at addr
  • ReadReg(addr): Read from register at addr
  • generate_random_data(len): Generate random 32-bit data of len length
  • WriteMem(addr,data): Write data into memory at addr
  • ReadMem(addr,len): Read len 32-bit data from memory starting from addr

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cocotbext_hyperbus-0.2.2.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

cocotbext_hyperbus-0.2.2-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file cocotbext_hyperbus-0.2.2.tar.gz.

File metadata

  • Download URL: cocotbext_hyperbus-0.2.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cocotbext_hyperbus-0.2.2.tar.gz
Algorithm Hash digest
SHA256 63493a04f1a2f1dc6af934d7046a6b47ee90cbcbb5534d3a5d7e6eb784686623
MD5 45bd6eef510863250ff099a2c576d666
BLAKE2b-256 5f4d5c8f91c49d8a5536d9f55470c56329ecfed6fb15db0fb8d00be6676c63be

See more details on using hashes here.

File details

Details for the file cocotbext_hyperbus-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for cocotbext_hyperbus-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8a63c25b389d0fa176d2db0b752f796c344b933aa8a414ca77288a44fb9e0409
MD5 7284807b489fb59fd45bdf4ba611ae8f
BLAKE2b-256 9108f9023eb15b3d40b5796c249a99326aa26ea99ff8d163d902f1049b903599

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page