This module is a binary threshold detector, that is, if the argument is below a specified power of two, a true is returned. There are four options. The argument bit width, whether it is signed, whether successive samples are to be interpreted as I and Q components, and whether the output is registered may be specified.
Ports | Parameters | Notes | Example
| clk | input | The clock input. It is unused if the instance is unregistered and the input is not interpreted as successive I and Q components. |
| in | input | The input. These are only the uppermost bits. |
| low | input | The logic output indicating a below-threshold condition. |
| w | 4 | Bit width of the input. |
| registered | "yes" | Whether the output is registered. It can be "yes" for registered, or anything else for not registered. |
| IQ | "yes" | Indicates whether successive samples are interpreted as I and Q components. Can be "yes" for I and Q compoents, or anything else for not. |
| sign | "yes" | Whether the input is interpreted as signed. Can be "yes for signed, and anything else for not signed. |
wire signed [15:0] data;
wire low;
Threshold
#(.w(4), .registered("no"), .IQ("yes"), .sign("yes"))
lim1 (.clk(clk), .in(data[15:12]), .low(low));