diff options
author | Ruben Undheim <ruben.undheim@gmail.com> | 2018-08-30 20:46:22 +0200 |
---|---|---|
committer | Ruben Undheim <ruben.undheim@gmail.com> | 2018-08-30 20:46:22 +0200 |
commit | 78bfe0de96fa5c6a7e53689ef53deaeac1d0a7b8 (patch) | |
tree | cc36d8cc573f1e6cc9b15ccc85a66883356cbf5f /examples/intel/asicworld_lfsr/lfsr_updown.v | |
parent | 291bd6d9b3f51ea86c38bbe998c0896ad8b9fed2 (diff) | |
parent | 5033b51947a6ef02cb785b5622e993335efa750a (diff) |
Merge tag 'upstream/0.7+20180830git0b7a184'
Upstream version 0.7+20180830git0b7a184
Diffstat (limited to 'examples/intel/asicworld_lfsr/lfsr_updown.v')
-rw-r--r-- | examples/intel/asicworld_lfsr/lfsr_updown.v | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/intel/asicworld_lfsr/lfsr_updown.v b/examples/intel/asicworld_lfsr/lfsr_updown.v new file mode 100644 index 00000000..43db1606 --- /dev/null +++ b/examples/intel/asicworld_lfsr/lfsr_updown.v @@ -0,0 +1,35 @@ +`default_nettype none +module lfsr_updown ( +clk , // Clock input +reset , // Reset input +enable , // Enable input +up_down , // Up Down input +count , // Count output +overflow // Overflow output +); + + input clk; + input reset; + input enable; + input up_down; + + output [7 : 0] count; + output overflow; + + reg [7 : 0] count; + + assign overflow = (up_down) ? (count == {{7{1'b0}}, 1'b1}) : + (count == {1'b1, {7{1'b0}}}) ; + + always @(posedge clk) + if (reset) + count <= {7{1'b0}}; + else if (enable) begin + if (up_down) begin + count <= {~(^(count & 8'b01100011)),count[7:1]}; + end else begin + count <= {count[5:0],~(^(count & 8'b10110001))}; + end + end + +endmodule |