Skip to content

Commit 1a52167

Browse files
authored
Merge pull request #114 from siliconcompiler/priority
Adding priority encoder
2 parents 0bc72de + 4ccd8ff commit 1a52167

File tree

4 files changed

+49
-8
lines changed

4 files changed

+49
-8
lines changed

lambdalib/veclib/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
from .la_vbuf.la_vbuf import Vbuf
44
from .la_vinv.la_vinv import Vinv
55
from .la_vmux.la_vmux import Vmux
6-
from .la_vmux2.la_vmux2 import Vmux2
76
from .la_vmux2b.la_vmux2b import Vmux2b
7+
from .la_vmux2.la_vmux2 import Vmux2
88
from .la_vmux3.la_vmux3 import Vmux3
99
from .la_vmux4.la_vmux4 import Vmux4
1010
from .la_vmux5.la_vmux5 import Vmux5
1111
from .la_vmux6.la_vmux6 import Vmux6
1212
from .la_vmux7.la_vmux7 import Vmux7
1313
from .la_vmux8.la_vmux8 import Vmux8
14+
from .la_vpriority.la_vpriority import Vpriority
1415

1516
__all__ = ['Vbuf',
1617
'Vinv',
@@ -22,7 +23,9 @@
2223
'Vmux5',
2324
'Vmux6',
2425
'Vmux7',
25-
'Vmux8']
26+
'Vmux8',
27+
'Vpriority'
28+
]
2629

2730

2831
class STDLib(Design):
@@ -41,3 +44,4 @@ def __init__(self):
4144
self.add_depfileset(Vmux6(), depfileset="rtl")
4245
self.add_depfileset(Vmux7(), depfileset="rtl")
4346
self.add_depfileset(Vmux8(), depfileset="rtl")
47+
self.add_depfileset(Vpriority(), depfileset="rtl")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from lambdalib.lambdalib import Lambda
2+
3+
4+
class Vpriority(Lambda):
5+
def __init__(self):
6+
name = 'la_vpriority'
7+
super().__init__(name, __file__)
8+
9+
10+
if __name__ == "__main__":
11+
d = Vpriority()
12+
d.write_fileset(f"{d.name}.f", fileset="rtl")
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//#############################################################################
2+
//# Function: N-Input Priority Encoder #
3+
//# Copyright: Lambda Project Authors. All rights Reserved. #
4+
//# License: MIT (see LICENSE file in Lambda repository) #
5+
//#############################################################################
6+
7+
module la_vpriority
8+
#(parameter N = 4 // number of inputs
9+
)
10+
(input [N-1:0] requests, // request vector ([0] is highest priority)
11+
output [N-1:0] grants // outgoing grant vector
12+
);
13+
14+
wire [N-1:0] mask;
15+
genvar j;
16+
17+
// priority mask
18+
assign mask[0] = 1'b0;
19+
for (j=N-1; j>=1; j=j-1)
20+
begin : ipri
21+
assign mask[j] = |requests[j-1:0];
22+
end
23+
24+
// priority grant circuit
25+
assign grants[N-1:0] = requests[N-1:0] & ~mask[N-1:0];
26+
27+
endmodule

pyproject.toml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
[build-system]
22
requires = [
3-
"setuptools >= 61.2",
4-
"setuptools_scm[toml] >= 6.2"
3+
"setuptools >= 64",
4+
"setuptools_scm[toml] >= 8"
55
]
66
build-backend = "setuptools.build_meta"
77

88
[tool.setuptools]
99
include-package-data = true
10-
packages = [
11-
"lambdalib"
12-
]
10+
packages = ["lambdalib"]
1311

1412
[project]
1513
name = "lambdalib"
1614
authors = [{name = "Zero ASIC"}]
1715
description = "Standardized ASIC design libraries"
1816
readme = "README.md"
1917
urls = {Homepage = "https://github.com/siliconcompiler/lambdalib"}
20-
requires-python = ">= 3.8"
18+
requires-python = ">= 3.9"
2119
license = {file = "LICENSE"}
2220
dependencies = [
2321
"siliconcompiler >= 0.34.3",

0 commit comments

Comments
 (0)