[prim] Make prim_clock_inverter a tech specific prim
Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/hw/ip/prim/prim.core b/hw/ip/prim/prim.core
index f9c7779..eee3a5d 100644
--- a/hw/ip/prim/prim.core
+++ b/hw/ip/prim/prim.core
@@ -18,7 +18,6 @@
- lowrisc:prim:flop
- lowrisc:prim:flop_2sync
files:
- - rtl/prim_clock_inverter.sv
- rtl/prim_clock_gating_sync.sv
- rtl/prim_alert_pkg.sv
- rtl/prim_alert_receiver.sv
diff --git a/hw/ip/prim/prim_clock_inv.core b/hw/ip/prim/prim_clock_inv.core
new file mode 100644
index 0000000..96227eb
--- /dev/null
+++ b/hw/ip/prim/prim_clock_inv.core
@@ -0,0 +1,25 @@
+CAPI=2:
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+
+name: "lowrisc:prim:clock_inv"
+description: "Clock inverter with scanmode bypass mux"
+filesets:
+ primgen_dep:
+ depend:
+ - lowrisc:prim:prim_pkg
+ - lowrisc:prim:primgen
+
+generate:
+ impl:
+ generator: primgen
+ parameters:
+ prim_name: clock_inv
+
+targets:
+ default:
+ filesets:
+ - primgen_dep
+ generate:
+ - impl
diff --git a/hw/ip/prim_generic/prim_generic_clock_inv.core b/hw/ip/prim_generic/prim_generic_clock_inv.core
new file mode 100644
index 0000000..b606644
--- /dev/null
+++ b/hw/ip/prim_generic/prim_generic_clock_inv.core
@@ -0,0 +1,45 @@
+CAPI=2:
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+
+name: "lowrisc:prim_generic:clock_inv"
+description: "Clock inverter with scanmode bypass mux"
+filesets:
+ files_rtl:
+ depend:
+ - lowrisc:prim:assert
+ - lowrisc:prim:clock_mux2
+ files:
+ - rtl/prim_generic_clock_inv.sv
+ file_type: systemVerilogSource
+
+ files_verilator_waiver:
+ depend:
+ # common waivers
+ - lowrisc:lint:common
+ files:
+ # - lint/prim_generic_clock_inv.vlt
+ file_type: vlt
+
+ files_ascentlint_waiver:
+ depend:
+ # common waivers
+ - lowrisc:lint:common
+ files:
+ # - lint/prim_generic_clock_inv.waiver
+ file_type: waiver
+
+ files_veriblelint_waiver:
+ depend:
+ # common waivers
+ - lowrisc:lint:common
+ - lowrisc:lint:comportable
+
+targets:
+ default:
+ filesets:
+ - tool_verilator ? (files_verilator_waiver)
+ - tool_ascentlint ? (files_ascentlint_waiver)
+ - tool_veriblelint ? (files_veriblelint_waiver)
+ - files_rtl
diff --git a/hw/ip/prim/rtl/prim_clock_inverter.sv b/hw/ip/prim_generic/rtl/prim_generic_clock_inv.sv
similarity index 69%
rename from hw/ip/prim/rtl/prim_clock_inverter.sv
rename to hw/ip/prim_generic/rtl/prim_generic_clock_inv.sv
index 3113c55..ddae18a 100644
--- a/hw/ip/prim/rtl/prim_clock_inverter.sv
+++ b/hw/ip/prim_generic/rtl/prim_generic_clock_inv.sv
@@ -5,7 +5,7 @@
// Clock inverter
// Varies on the process
-module prim_clock_inverter #(
+module prim_generic_clock_inv #(
parameter bit HasScanMode = 1'b1
) (
input clk_i,
@@ -15,10 +15,10 @@
if (HasScanMode) begin : gen_scan
prim_clock_mux2 i_dft_tck_mux (
- .clk0_i ( ~clk_i ),
- .clk1_i ( clk_i ), // bypass the inverted clock for testing
- .sel_i ( scanmode_i ),
- .clk_o ( clk_no )
+ .clk0_i ( ~clk_i ),
+ .clk1_i ( clk_i ), // bypass the inverted clock for testing
+ .sel_i ( scanmode_i ),
+ .clk_o ( clk_no )
);
end else begin : gen_noscan
logic unused_scanmode;
@@ -26,4 +26,4 @@
assign clk_no = ~clk_i;
end
-endmodule
+endmodule : prim_generic_clock_inv
diff --git a/hw/ip/spi_device/rtl/spi_device.sv b/hw/ip/spi_device/rtl/spi_device.sv
index 3e9b7b5..f7f9ed1 100644
--- a/hw/ip/spi_device/rtl/spi_device.sv
+++ b/hw/ip/spi_device/rtl/spi_device.sv
@@ -314,7 +314,7 @@
logic sck_n;
logic rst_spi_n;
- prim_clock_inverter u_clk_spi (.clk_i(cio_sck_i), .clk_no(sck_n), .scanmode_i);
+ prim_clock_inv u_clk_spi (.clk_i(cio_sck_i), .clk_no(sck_n), .scanmode_i);
assign clk_spi_in = (cpha ^ cpol) ? sck_n : cio_sck_i ;
assign clk_spi_out = (cpha ^ cpol) ? cio_sck_i : sck_n ;
diff --git a/hw/ip/spi_device/spi_device.core b/hw/ip/spi_device/spi_device.core
index 6938161..6fcc6d8 100644
--- a/hw/ip/spi_device/spi_device.core
+++ b/hw/ip/spi_device/spi_device.core
@@ -11,6 +11,7 @@
- lowrisc:ip:tlul
- lowrisc:prim:all
- lowrisc:prim:clock_gating
+ - lowrisc:prim:clock_inv
- lowrisc:prim:ram_2p_adv
files:
- rtl/spi_device_reg_pkg.sv