lowRISC / lowRISC/opentitan

[i2c,dv] i2c_host_fifo_full_vseq changes

Open
#18,979 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component:DV Earlgrey-PROD Candidate IP:i2c Priority:P3 Type:Icebox
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

Description

There is a suggested modification to the FIFO full sequence: send N + 1 items (N is fifo depth), configure agent to slow read mode (not able to completely handle one item before N+1 items are written), then check fifo_full bit is:

  • not asserted when N items are written to fifo (fifo_lvl = N-1)
  • asserted once writing one more item to fifo (fifo_lvl = N)
  • clear interrupt, finish processing all the items and check interrupt not asserted

Based on this TODO:
https://github.com/lowRISC/opentitan/blob/c342c8c6bf2d014bc69b14691514e69b28962a18/hw/ip/i2c/dv/env/seq_lib/i2c_host_fifo_full_vseq.sv#L49-L54

I am putting this in the icebox because the current test sends a random number of transactions with a random number of bytes and checks that the FIFO level, empty and full signals are exercised the right way. The FIFO full level is hit when number of transactions times number of bytes is greater than 64, the FIFO depth. Number of transactions varies from 10-20 and bytes varies from 1-32 so we will hit these interesting cases with reasonable likelihood without making a directed test case for it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading hw/ip/i2c/dv/env/seq_lib/i2c_host_fifo_full_vseq.sv, especially the TODO at lines 49-54, and compare it with the current randomized checks. The work is complete when the sequence covers the N, N+1, interrupt-clear, and final-processing FIFO checks described in the issue.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.