blob: c1ecd0bb0823e753347eac7c540c63bc68f58c5b [file] [log] [blame]
agorararmard6c766a82020-12-10 18:13:12 +02001// SPDX-FileCopyrightText: 2020 Efabless Corporation
agorararmarde5780bf2020-12-09 21:27:56 +00002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
agorararmardafa96ea2020-12-09 23:37:31 +020014// SPDX-License-Identifier: Apache-2.0
agorararmarde5780bf2020-12-09 21:27:56 +000015
Tim Edwardsbc035512020-11-23 11:16:08 -050016`default_nettype none
17/*----------------------------------------------------------------------*/
18/* mgmt_protect_hv: */
19/* */
20/* High voltage (3.3V) part of the mgmt_protect module. Split out into */
21/* a separate module and file so that the synthesis tools can handle it */
22/* separately from the rest, since it uses a different standard cell */
23/* library. See the file mgmt_protect.v for a full description of the */
24/* whole management protection method. */
25/*----------------------------------------------------------------------*/
26
27module mgmt_protect_hv (
Ahmed Ghazy1d1679d2020-11-30 17:44:45 +020028`ifdef USE_POWER_PINS
Tim Edwardsbc035512020-11-23 11:16:08 -050029 inout vccd,
30 inout vssd,
31 inout vdda1,
32 inout vssa1,
33 inout vdda2,
34 inout vssa2,
Ahmed Ghazy1d1679d2020-11-30 17:44:45 +020035`endif
Tim Edwardsbc035512020-11-23 11:16:08 -050036
37 output mprj_vdd_logic1,
38 output mprj2_vdd_logic1
39
40);
41
42 wire mprj_vdd_logic1_h;
43 wire mprj2_vdd_logic1_h;
44
45 // Logic high in the VDDA (3.3V) domains
46
47 sky130_fd_sc_hvl__conb_1 mprj_logic_high_hvl (
48`ifdef USE_POWER_PINS
49 .VPWR(vdda1),
50 .VGND(vssa1),
51 .VPB(vdda1),
52 .VNB(vssa1),
53`endif
54 .HI(mprj_vdd_logic1_h),
55 .LO()
56 );
57
58 sky130_fd_sc_hvl__conb_1 mprj2_logic_high_hvl (
59`ifdef USE_POWER_PINS
60 .VPWR(vdda2),
61 .VGND(vssa2),
62 .VPB(vdda2),
63 .VNB(vssa2),
64`endif
65 .HI(mprj2_vdd_logic1_h),
66 .LO()
67 );
68
69 // Level shift the logic high signals into the 1.8V domain
70
71 sky130_fd_sc_hvl__lsbufhv2lv_1 mprj_logic_high_lv (
72`ifdef USE_POWER_PINS
73 .VPWR(vdda1),
74 .VGND(vssd),
75 .LVPWR(vccd),
76 .VPB(vdda1),
77 .VNB(vssd),
78`endif
79 .X(mprj_vdd_logic1),
80 .A(mprj_vdd_logic1_h)
81 );
82
83 sky130_fd_sc_hvl__lsbufhv2lv_1 mprj2_logic_high_lv (
84`ifdef USE_POWER_PINS
85 .VPWR(vdda2),
86 .VGND(vssd),
87 .LVPWR(vccd),
88 .VPB(vdda2),
89 .VNB(vssd),
90`endif
91 .X(mprj2_vdd_logic1),
92 .A(mprj2_vdd_logic1_h)
93 );
94
95endmodule
96`default_nettype wire