diff options
author | Max Köhler <max.koehler@ni.com> | 2020-11-24 16:08:48 +0100 |
---|---|---|
committer | Wade Fife <wade.fife@ettus.com> | 2020-12-03 09:02:17 -0600 |
commit | de3b48e89f2f9711b4b97c080d5c35baba45f573 (patch) | |
tree | 731ed3f9470f60689f090c71e0ce98b2bce08f18 /fpga/usrp3 | |
parent | 2ea04bf544cf30220bff8b5bbaafa81a9db41183 (diff) | |
download | uhd-de3b48e89f2f9711b4b97c080d5c35baba45f573.tar.gz uhd-de3b48e89f2f9711b4b97c080d5c35baba45f573.tar.bz2 uhd-de3b48e89f2f9711b4b97c080d5c35baba45f573.zip |
fpga: lib: add glitch free mux module
Diffstat (limited to 'fpga/usrp3')
-rw-r--r-- | fpga/usrp3/lib/control/Makefile.srcs | 1 | ||||
-rw-r--r-- | fpga/usrp3/lib/control/glitch_free_mux.v | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/control/Makefile.srcs b/fpga/usrp3/lib/control/Makefile.srcs index 7388eb8cb..9a24f44fa 100644 --- a/fpga/usrp3/lib/control/Makefile.srcs +++ b/fpga/usrp3/lib/control/Makefile.srcs @@ -61,4 +61,5 @@ map/axis_muxed_kv_map.v \ axil_ctrlport_master.v\ handshake.v\ ctrlport_to_regport.v \ +glitch_free_mux.v \ )) diff --git a/fpga/usrp3/lib/control/glitch_free_mux.v b/fpga/usrp3/lib/control/glitch_free_mux.v new file mode 100644 index 000000000..e2f4dc177 --- /dev/null +++ b/fpga/usrp3/lib/control/glitch_free_mux.v @@ -0,0 +1,29 @@ +// +// Copyright 2020 Ettus Research, a National Instruments Brand +// +// SPDX-License-Identifier: LGPL-3.0-or-later +// +// Module: glitch_free_mux +// +// Description: +// This module implements a 2:1 mux in a LUT explicitly to avoid glitches +// which can be introduced by unexpected Vivado synthesis. +// + +module glitch_free_mux ( + input wire select, + input wire signal0, + input wire signal1, + output wire muxed_signal +); + + (* dont_touch = "TRUE" *) LUT3 #( + .INIT(8'hCA) // Specify LUT Contents. O = ~I2&I0 | I2&I1 + ) mux_out_i ( + .O (muxed_signal), // LUT general output. Mux output + .I0(signal0), // LUT input. Input 1 + .I1(signal1), // LUT input. Input 2 + .I2(select) // LUT input. Select bit + ); + +endmodule |