diff --git a/comb_repeater.sv b/comb_repeater.sv new file mode 100644 index 0000000..385c3d5 --- /dev/null +++ b/comb_repeater.sv @@ -0,0 +1,64 @@ +//------------------------------------------------------------------------------ +// comb_repeater.sv +// Konstantin Pavlov, pavlovconst@gmail.com +//------------------------------------------------------------------------------ + +// INFO ------------------------------------------------------------------------ +// Combinational signal repeater +// +// Every stage consists of two sequential inverters +// Configurable number of stages +// +// Adapted for AMD/Xilinx devices +// + + +/* --- INSTANTIATION TEMPLATE BEGIN --- + +comb_repeater #( + .LENGTH( 2 ), + .WIDTH( 1 ) +) R1 ( + .in( ), + .out( ) +); + +--- INSTANTIATION TEMPLATE END ---*/ + + +module comb_repeater #( parameter + LENGTH = 1, // repeater chain length + WIDTH = 1 // repeater bus width +)( + input [WIDTH-1:0] in, + output logic [WIDTH-1:0] out +); + + + (* DONT_TOUCH = "TRUE" *) logic [LENGTH-1:0][WIDTH-1:0] s1; // first inverter outputs + (* DONT_TOUCH = "TRUE" *) logic [LENGTH-1:0][WIDTH-1:0] s2; // second inverter outputs + + genvar i; + generate + for( i=0; i