summaryrefslogtreecommitdiff
path: root/manual/PRESENTATION_ExAdv/select.v
diff options
context:
space:
mode:
Diffstat (limited to 'manual/PRESENTATION_ExAdv/select.v')
-rw-r--r--manual/PRESENTATION_ExAdv/select.v15
1 files changed, 15 insertions, 0 deletions
diff --git a/manual/PRESENTATION_ExAdv/select.v b/manual/PRESENTATION_ExAdv/select.v
new file mode 100644
index 00000000..1b0bb7ee
--- /dev/null
+++ b/manual/PRESENTATION_ExAdv/select.v
@@ -0,0 +1,15 @@
+module test(clk, s, a, y);
+ input clk, s;
+ input [15:0] a;
+ output [15:0] y;
+ reg [15:0] b, c;
+
+ always @(posedge clk) begin
+ b <= a;
+ c <= b;
+ end
+
+ wire [15:0] state_a = (a ^ b) + c;
+ wire [15:0] state_b = (a ^ b) - c;
+ assign y = !s ? state_a : state_b;
+endmodule