Skip to content

[library] Remove blocking statements. #754

Open
@cgyurgyik

Description

@cgyurgyik

From @rachitnigam in #750:

Generally recommend splitting up assignments an always_comb block so that only individual signals are assigned to.

Instead of:

always_comb begin
  x = a;
  y = x;
end

do:

always_comb begin
  x = a
end
always_comb begin
  y = x
end

This is because = is the "blocking assignment" operator and implies ordering over statements. In the first program, we'll have y == a at the end. Generally, blocking semantics should be avoided.

We should carefully go through the primitive library and remove any blocking assignments that are present.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: LibraryCalyx's standard libraryS: AvailableCan be worked upongood first issueGood issue to start contributing on Calyx

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions