|
|
|
|
|
by thesz
2986 days ago
|
|
I used pretty advanced type system features to support better hardware description language. for example, I had to provide length of bit vectors in the type system and account for compatibility of concatenation of two bit vectors and bit vector with the length of the sum of their lengths. That required implementing arithmetic in the type system. I also strictly required that arithmetic and most other operations require length equality. E.g., you should not be able to compare for equality single bit and bit vector of length 10, as it is possible in C and Verilog. This thing alone proved very effective in reducing errors in the code. The operations that cross clock domains are also prohibited, etc. The problem with hardware is that it is really hard to change once you "compiled" it. So you have to plan to get rid of errors early, without too much testing. The problem with AAA games is their budget - you can throw many people at finding bugs by testing (playing and replaying). So you do not need a tool that allows you to get rid of as many bugs as possible as early as possible. The process employed in AAA games development ensures that there will be not many bugs in the end. It is just that process is different than, say, one in hardware development. |
|