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

Pragma #48

Merged
merged 13 commits into from
May 17, 2024
Merged

Pragma #48

merged 13 commits into from
May 17, 2024

Conversation

aolofsson
Copy link
Member

@aolofsson aolofsson commented May 6, 2024

  • Adding sync clear bit to fifo to enable graceful recovery
  • Standardize around ifdef "SIM" for simulation only constructs

parameter PROP = "DEFAULT"
)
module la_dsync #(parameter PROP = "DEFAULT",
parameter STAGES = 2, // synchronizer depth
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how will this work with the pre-compiled technology libraries?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Target libraries can have generate statements to select between different gate level netlists.

lambdalib/ramlib/rtl/la_syncfifo.v Outdated Show resolved Hide resolved
lambdalib/ramlib/rtl/la_syncfifo.v Show resolved Hide resolved
lambdalib/stdlib/rtl/la_rsync.v Outdated Show resolved Hide resolved
lambdalib/stdlib/rtl/la_rsync.v Outdated Show resolved Hide resolved
@@ -1,16 +1,16 @@
# Lambdalib Introduction

Lambdalib is a modular hardware abstraction layer that helps decouple hardware design from manufacturing technology and proprietary IP. Lambdalib defines a set of technology independent generic functions that can be directly instantiated within the design. Technology specific implementations can be linked in at compile time.
Lambdalib is a modular hardware abstraction library decouples design from the uderlying manufacturing target. Lambdalib defines a set of generic functions that get resolved during the target technology mapping stage.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typos: that decouples, the underlying

@@ -24,8 +24,8 @@ module la_spram #(
parameter DW = 32, // Memory width
parameter AW = 10, // Address width (derived)
parameter TYPE = "DEFAULT", // Pass through variable for hard macro
parameter CTRLW = 128, // Width of asic ctrl interface
parameter TESTW = 128 // Width of asic test interface
parameter CTRLW = 1, // Width of asic ctrl interface
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change will need to be synced with process-specific implementations of la_spram so that they can be interchanged

(// basic interface
input clk,
input nreset,//async reset
input clear, //clear fifo statemachine (sync)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this interface change is pretty low-impact. But it still might be good to have some sort of announcement of interface and parameter default changes to the lambdalib users so that they know to update their RTL code.

@aolofsson aolofsson merged commit 295abb8 into main May 17, 2024
4 of 6 checks passed
@aolofsson aolofsson deleted the pragma branch May 17, 2024 12:38
@aolofsson aolofsson restored the pragma branch May 17, 2024 12:40
@gadfort gadfort deleted the pragma branch May 21, 2024 12:36
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.

3 participants