Updated documentation of the clock_mux test case Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
diff --git a/tests/clock_mux/README.md b/tests/clock_mux/README.md deleted file mode 100644 index 91197e6..0000000 --- a/tests/clock_mux/README.md +++ /dev/null
@@ -1,5 +0,0 @@ -# `clock mux` tests - -This is an example of modeling a clock mux/buffer which has both clock inputs and outputs. According to the "Primitive Block Timing Modeling Tutorial" section "Clock Buffers & Muxes" of the VTR manual (https://docs.verilogtorouting.org/en/latest/tutorials/arch/timing_modeling/#clock-muxes), a clock buffer or a clock mux has to have its outputs(s) as combinational sinks of clock input(s). This contradicts with how regular sequential blocks (like flip-flops) has to be modeled. - -In this example the NO_COMB attribute is used. When it's value is forced to 0 then clock inputs may get combinational_sink annotations.
diff --git a/tests/clock_mux/README.rst b/tests/clock_mux/README.rst new file mode 100644 index 0000000..e320863 --- /dev/null +++ b/tests/clock_mux/README.rst
@@ -0,0 +1,29 @@ +Clock multiplexing primitive +++++++++++++++++++++++++++++ + +This is an example of modeling a clock mux/buffer which has both clock inputs and clock outputs. + +According to the "Primitive Block Timing Modeling Tutorial" section "Clock Buffers & Muxes" of the `VTR documentation <https://docs.verilogtorouting.org/en/latest/tutorials/arch/timing_modeling/#clock-muxes>`_, a clock buffer or a clock mux has to have its outputs(s) as combinational sinks of clock input(s). This contradicts with how regular sequential blocks (like flip-flops) have to be modeled. + +V2X provides the attribute `(* NO_COMB *)` that when specified on a clock port and given explicitly the value of 0 will prevent it from getting combinational_sink annotations in XML. + +.. symbolator:: gmux.sim.v + +.. verilog-diagram:: gmux.sim.v + :type: netlistsvg + :module: GMUX + +.. no-license:: gmux.sim.v + :language: verilog + :caption: tests/clock_mux/gmux.sim.v + +In this example the `(* NO_COMB *)` attribute is used on clock inputs IP and IC so they don't get any combinational_sink tags. + +.. literalinclude:: gmux.model.xml + :language: xml + :caption: gmux.model.xml + +.. literalinclude:: gmux.pb_type.xml + :language: xml + :caption: gmux.pb_type.xml +