aboutsummaryrefslogtreecommitdiffstats
path: root/bugs
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2019-11-14 17:37:42 +0000
committerYann Herklotz <git@yannherklotz.com>2019-11-14 17:37:42 +0000
commit7ada9b9fdc874dd27bdbd19461be289e783df7e1 (patch)
tree84552db4db337c4884992adcdf228e390035fb81 /bugs
parente4b2455be384c95a9ab87881db01841a13bfec88 (diff)
downloadverismith-7ada9b9fdc874dd27bdbd19461be289e783df7e1.tar.gz
verismith-7ada9b9fdc874dd27bdbd19461be289e783df7e1.zip
Add first quartus bug
Diffstat (limited to 'bugs')
-rw-r--r--bugs/quartus_12.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/bugs/quartus_12.md b/bugs/quartus_12.md
new file mode 100644
index 0000000..9d8b278
--- /dev/null
+++ b/bugs/quartus_12.md
@@ -0,0 +1,19 @@
+# Wrong Signed extension in binary expression
+
+[ Not fixed | N/a ]
+
+## Affected versions
+
+- Quartus 19.1
+
+## Description
+
+Wrong signed extension in the binary xor operation. As the LHS in the binary operation is unsigned, the RHS should also be extended in an unsigned way, even though the `$signed` function is applied on the result. Therefore, the output should be `~ 2'b01 = 2'b10`, and not what Quartus does, which is `~ 2'b11 = 2'b00`.
+
+```verilog
+module top(y, wire1);
+ output [1:0] y;
+ input wire1;
+ assign y = 2'b11 ^ $signed(wire1);
+endmodule
+```