lowRISC / lowRISC/opentitan

[pattgen,doc] Documentation might not be up to date

Open
#23,340 1 comment 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

Component:Doc IP:pattgen
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

### Description

The following issues were found when when porting the pattgen_ios_test to master.

- When the inactive level feature was added in #23198, the `Theory of operation` section was not update and only the programmers' guide explains the inactive feature. This can be misleading this the theory of operations says that:
`
When this overflow occurs, the FSM transitions to the END state. All counters halt, the pda data lines reset to zero, and an interrupt event is sent out to signal completion.
`
Maybe the theory of operation should be updated as well to mention to the inactive levels instead of zero.

- Another issue is that based on the RTL, the inactive level bits can only be changed when the channel is not enabled but this is not specified in the register documentation. This is in constrast to the other fields that have a comment saying `Note that writes to a channel’s configuration registers have no effect while `

- The interaction between the inactive level and polarity features does not seem clear to me (see below).

### Inactive level and polarity feature

The documentation says `For either channel, a zero in the polarity bit indicates that the channel clock line (pcl) should start low, and the channel data line pda transitions on every falling edge of pcl. A one in the polarity bit inverts the pcl clock so that it starts high and pda transitions on the rising edge. `. However it can lead to unclear situations (which to be fair already existed somewhat before this feature). For example if the polarity is set to `rising edge` and the `inactive level pcl` is set to high then on the first "clock tick", PCL is already high so it does not technically have a rising edge. Will the data change on that non-existent rising edge or will it wait until the lock actually falls low and rises again?

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.