Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions lambdalib/veclib/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
from .la_vbuf.la_vbuf import Vbuf
from .la_vinv.la_vinv import Vinv
from .la_vmux.la_vmux import Vmux
from .la_vmux2.la_vmux2 import Vmux2
from .la_vmux2b.la_vmux2b import Vmux2b
from .la_vmux2.la_vmux2 import Vmux2
from .la_vmux3.la_vmux3 import Vmux3
from .la_vmux4.la_vmux4 import Vmux4
from .la_vmux5.la_vmux5 import Vmux5
from .la_vmux6.la_vmux6 import Vmux6
from .la_vmux7.la_vmux7 import Vmux7
from .la_vmux8.la_vmux8 import Vmux8
from .la_vpriority.la_vpriority import Vpriority

__all__ = ['Vbuf',
'Vinv',
Expand All @@ -22,7 +23,9 @@
'Vmux5',
'Vmux6',
'Vmux7',
'Vmux8']
'Vmux8',
'Vpriority'
]


class STDLib(Design):
Expand All @@ -41,3 +44,4 @@ def __init__(self):
self.add_depfileset(Vmux6(), depfileset="rtl")
self.add_depfileset(Vmux7(), depfileset="rtl")
self.add_depfileset(Vmux8(), depfileset="rtl")
self.add_depfileset(Vpriority(), depfileset="rtl")
12 changes: 12 additions & 0 deletions lambdalib/veclib/la_vpriority/la_vpriority.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from lambdalib.lambdalib import Lambda


class Vpriority(Lambda):
def __init__(self):
name = 'la_vpriority'
super().__init__(name, __file__)


if __name__ == "__main__":
d = Vpriority()
d.write_fileset(f"{d.name}.f", fileset="rtl")
27 changes: 27 additions & 0 deletions lambdalib/veclib/la_vpriority/rtl/la_vpriority.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//#############################################################################
//# Function: N-Input Priority Encoder #
//# Copyright: Lambda Project Authors. All rights Reserved. #
//# License: MIT (see LICENSE file in Lambda repository) #
//#############################################################################

module la_vpriority
#(parameter N = 4 // number of inputs
)
(input [N-1:0] requests, // request vector ([0] is highest priority)
output [N-1:0] grants // outgoing grant vector
);

wire [N-1:0] mask;
genvar j;

// priority mask
assign mask[0] = 1'b0;
for (j=N-1; j>=1; j=j-1)
begin : ipri
assign mask[j] = |requests[j-1:0];
end

// priority grant circuit
assign grants[N-1:0] = requests[N-1:0] & ~mask[N-1:0];

endmodule
10 changes: 4 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
[build-system]
requires = [
"setuptools >= 61.2",
"setuptools_scm[toml] >= 6.2"
"setuptools >= 64",
"setuptools_scm[toml] >= 8"
]
build-backend = "setuptools.build_meta"

[tool.setuptools]
include-package-data = true
packages = [
"lambdalib"
]
packages = ["lambdalib"]

[project]
name = "lambdalib"
authors = [{name = "Zero ASIC"}]
description = "Standardized ASIC design libraries"
readme = "README.md"
urls = {Homepage = "https://github.com/siliconcompiler/lambdalib"}
requires-python = ">= 3.8"
requires-python = ">= 3.9"
license = {file = "LICENSE"}
dependencies = [
"siliconcompiler >= 0.34.3",
Expand Down
Loading