Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pipeline reset value for multi-bit signals #27

Merged
merged 2 commits into from
Nov 6, 2023
Merged

Pipeline reset value for multi-bit signals #27

merged 2 commits into from
Nov 6, 2023

Conversation

lorenzschmid
Copy link
Contributor

When enabling a pipeline, cheby instantiates an additional synchronous process, which

  1. resets the pipelined signal, and
  2. assigns the actual value to the pipelined signal upon a rising clock edge.

Unfortunately, cheby implements step 1 only for signals with a size of 1 bit. Signals with a size greater than one bit are only added in step 2. I.e., in the following example rd_adr_d0 has no reset assignment while the single-bit signal rd_req_d0 does:

  -- pipelining for rd-in
  process (pclk) begin
    if rising_edge(pclk) then
      if presetn = '0' then
        rd_req_d0 <= '0';
      else
        rd_req_d0 <= rd_req;
        rd_adr_d0 <= rd_addr;
      end if;
    end if;
  end process;

This PR fixes this behavior in c0d21f8 by adding a zero constant value as reset assignment for multip-bit signals.

@tgingold-cern tgingold-cern merged commit 704aa13 into tgingold-cern:master Nov 6, 2023
2 checks passed
@tgingold-cern
Copy link
Owner

Thanks!

@lorenzschmid lorenzschmid deleted the pipeline-buffer branch November 6, 2023 08:07
@lorenzschmid lorenzschmid mentioned this pull request Nov 6, 2023
lorenzschmid added a commit to lorenzschmid/cheby that referenced this pull request Jul 12, 2024
For changes added for pipeline buffer fix (see
tgingold-cern#27) and locking feature
(see tgingold-cern#25).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants