summaryrefslogtreecommitdiff
path: root/rtl/fpu/lzc/lzc_8.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-04-27 11:45:23 -0600
committerAlejandro Soto <alejandro@34project.org>2024-04-27 11:45:23 -0600
commit45b5eabe868ac2f8a755379bde07c102caf74afb (patch)
tree7b740cbc6b19b46d731e29ee145c2a8ad744e847 /rtl/fpu/lzc/lzc_8.sv
parenta61ee4b16157f3c6501d958b8dcde7f57f41110d (diff)
rtl/fpu: initial commit
Imported from https://github.com/taneroksuz/fpu-sp
Diffstat (limited to 'rtl/fpu/lzc/lzc_8.sv')
-rw-r--r--rtl/fpu/lzc/lzc_8.sv44
1 files changed, 44 insertions, 0 deletions
diff --git a/rtl/fpu/lzc/lzc_8.sv b/rtl/fpu/lzc/lzc_8.sv
new file mode 100644
index 0000000..562b79f
--- /dev/null
+++ b/rtl/fpu/lzc/lzc_8.sv
@@ -0,0 +1,44 @@
+module lzc_8 (
+ input [7:0] a,
+ output [2:0] c,
+ output v
+);
+
+ logic [1:0] z0;
+ logic [1:0] z1;
+
+ logic v0;
+ logic v1;
+
+ logic s0;
+ logic s1;
+ logic s2;
+ logic s3;
+ logic s4;
+ logic s5;
+ logic s6;
+
+ lzc_4 lzc_4_comp_0 (
+ .a(a[3:0]),
+ .c(z0),
+ .v(v0)
+ );
+
+ lzc_4 lzc_4_comp_1 (
+ .a(a[7:4]),
+ .c(z1),
+ .v(v1)
+ );
+
+ assign s0 = v1 | v0;
+ assign s1 = (~v1) & z0[0];
+ assign s2 = z1[0] | s1;
+ assign s3 = (~v1) & z0[1];
+ assign s4 = z1[1] | s3;
+
+ assign v = s0;
+ assign c[0] = s2;
+ assign c[1] = s4;
+ assign c[2] = v1;
+
+endmodule