File tree Expand file tree Collapse file tree 4 files changed +49
-8
lines changed Expand file tree Collapse file tree 4 files changed +49
-8
lines changed Original file line number Diff line number Diff line change 33from .la_vbuf .la_vbuf import Vbuf
44from .la_vinv .la_vinv import Vinv
55from .la_vmux .la_vmux import Vmux
6- from .la_vmux2 .la_vmux2 import Vmux2
76from .la_vmux2b .la_vmux2b import Vmux2b
7+ from .la_vmux2 .la_vmux2 import Vmux2
88from .la_vmux3 .la_vmux3 import Vmux3
99from .la_vmux4 .la_vmux4 import Vmux4
1010from .la_vmux5 .la_vmux5 import Vmux5
1111from .la_vmux6 .la_vmux6 import Vmux6
1212from .la_vmux7 .la_vmux7 import Vmux7
1313from .la_vmux8 .la_vmux8 import Vmux8
14+ from .la_vpriority .la_vpriority import Vpriority
1415
1516__all__ = ['Vbuf' ,
1617 'Vinv' ,
2223 'Vmux5' ,
2324 'Vmux6' ,
2425 'Vmux7' ,
25- 'Vmux8' ]
26+ 'Vmux8' ,
27+ 'Vpriority'
28+ ]
2629
2730
2831class 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" )
Original file line number Diff line number Diff line change 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" )
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 11[build-system ]
22requires = [
3- " setuptools >= 61.2 " ,
4- " setuptools_scm[toml] >= 6.2 "
3+ " setuptools >= 64 " ,
4+ " setuptools_scm[toml] >= 8 "
55]
66build-backend = " setuptools.build_meta"
77
88[tool .setuptools ]
99include-package-data = true
10- packages = [
11- " lambdalib"
12- ]
10+ packages = [" lambdalib" ]
1311
1412[project ]
1513name = " lambdalib"
1614authors = [{name = " Zero ASIC" }]
1715description = " Standardized ASIC design libraries"
1816readme = " README.md"
1917urls = {Homepage = " https://github.com/siliconcompiler/lambdalib" }
20- requires-python = " >= 3.8 "
18+ requires-python = " >= 3.9 "
2119license = {file = " LICENSE" }
2220dependencies = [
2321 " siliconcompiler >= 0.34.3" ,
You can’t perform that action at this time.
0 commit comments