Found Errors » History » Version 4
Sergey Smolov, 11/02/2019 04:07 PM
1 | 1 | Sergey Smolov | h1. Found Errors |
---|---|---|---|
2 | |||
3 | 4 | Sergey Smolov | Here the collection of public benchmarks that are used for *Verilog Translator* testing is presented. |
4 | |||
5 | {{toc}} |
||
6 | |||
7 | h2. Texas97 benchmark |
||
8 | |||
9 | "Texas97 benchmark Web page":https://ptolemy.berkeley.edu/projects/embedded/research/vis/texas-97 |
||
10 | |||
11 | The complete collection of our fixes is available in the "patch":https://forge.ispras.ru/attachments/5900/0001-test-apply-fixes-to-Texas97-modules.patch below. |
||
12 | |||
13 | 3 | Sergey Smolov | 1. |
14 | 1 | Sergey Smolov | src/main/verilog/texas97-benchmarks/Blackjack/dp.v: RDelaer1 -> RDealer1 |
15 | 2 | Sergey Smolov | src/main/verilog/texas97-benchmarks/Blackjack/dp.v: RDelaer2 -> RDealer2 |
16 | 3 | Sergey Smolov | |
17 | 2. |
||
18 | <pre><code class="diff"> |
||
19 | --- a/src/main/verilog/texas97-benchmarks/DLX/PDLX/control.v |
||
20 | +++ b/src/main/verilog/texas97-benchmarks/DLX/PDLX/control.v |
||
21 | @@ -14,7 +14,7 @@ module Control( |
||
22 | SESel, |
||
23 | |||
24 | Reset, |
||
25 | - Clk , |
||
26 | + Clk// , |
||
27 | ); |
||
28 | reg monitor_lw; |
||
29 | reg monitor_j; |
||
30 | 4 | Sergey Smolov | </code></pre> |
31 | |||
32 | |||
33 | |||
34 | h3. $ND macro |
||
35 | |||
36 | This macro implements a Non-Deterministic choice from the sequence of values. Since this macro is not a standard one, it should be substituted by the *$random* system calls. |
||
37 | |||
38 | In our version of Texas97 benchmark *$ND* calls are substituted by concatenation operations, like here: |
||
39 | <pre><code class="diff"> |
||
40 | --- a/src/test/verilog/texas97-tests/Blackjack/dp.v |
||
41 | +++ b/src/test/verilog/texas97-tests/Blackjack/dp.v |
||
42 | @@ -93,24 +93,25 @@ |
||
43 | Deck[13] =0; |
||
44 | Deck[14] =0; |
||
45 | Deck[15] =0; |
||
46 | - First6Card[0]=$ND(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); |
||
47 | - First6Card[1]=$ND(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); |
||
48 | - First6Card[2]=$ND(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); |
||
49 | - First6Card[3]=$ND(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); |
||
50 | - First6Card[4]=$ND(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); |
||
51 | - First6Card[5]=$ND(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); |
||
52 | + First6Card[0]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; |
||
53 | + First6Card[1]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; |
||
54 | + First6Card[2]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; |
||
55 | + First6Card[3]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; |
||
56 | + First6Card[4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; |
||
57 | </code></pre> |
||
58 | |||
59 | h3. Enums |
||
60 | |||
61 | There are no enums in Verilog 2005, so 'typedef enum {...}' constructions were substituted by defines: |
||
62 | <pre><code class="diff"> |
||
63 | --- a/src/test/verilog/texas97-tests/PI_BUS/multi_master/bus.v |
||
64 | +++ b/src/test/verilog/texas97-tests/PI_BUS/multi_master/bus.v |
||
65 | @@ -1,6 +1,11 @@ |
||
66 | |||
67 | -typedef enum{BUS_IDLE,BUS_REQ,BUS_ADDR,BUS_ADDRDATA,BUS_DATA} busst; |
||
68 | +//typedef enum{BUS_IDLE,BUS_REQ,BUS_ADDR,BUS_ADDRDATA,BUS_DATA} busst; |
||
69 | |||
70 | +`define BUS_IDLE 3'b000 |
||
71 | +`define BUS_REQ 3'b001 |
||
72 | +`define BUS_ADDR 3'b010 |
||
73 | +`define BUS_ADDRDATA 3'b011 |
||
74 | +`define BUS_DATA 3'b100 |
||
75 | </code></pre> |
||
76 | |||
77 | h2. VCEGAR benchmark |
||
78 | |||
79 | "VCEGAR benchmark Web page":http://www.cprover.org/ebmc/ |
||
80 | |||
81 | h3. Syntax errors |
||
82 | |||
83 | <pre><code class="diff"> |
||
84 | --- a/src/test/verilog/vcegar-tests/small/seq/example.v |
||
85 | +++ b/src/test/verilog/vcegar-tests/small/seq/example.v |
||
86 | @@ -1,13 +1,13 @@ |
||
87 | -always @ (posedge clock) begin |
||
88 | - if (a<100) |
||
89 | +always @ (posedge clk) begin |
||
90 | + if (a<100) |
||
91 | a<=b+a; |
||
92 | 3 | Sergey Smolov | </code></pre> |