Alchitry Labs V2.0.17 just release and is a major shift from previous releases.
snake_case
When starting on Lucid V2, I had originally though to make camelCase
the default style for names.
However, I think this was a poor choice for a few reasons and decided to switch to snake_case
.
The biggest reason to use snake_case
is because this is what is used by Verilog.
All the Xilinx tools use snake_case
so when mixing Lucid and Verilog it is nicer to have a consistent style.
Lucid V1 was also mostly documented in snake_case
but the styling wasn't super consistent.
This is what made me think to switch in the first place.
I generally prefer the aesthetics of camelCase
, but writing rst_n
as rstN
is just awful.
Adding a _n
or _p
suffix to names is common with differential signals (as seen in the DDR3 MIG module).
Single letters are hard to discern in camelCase
and are much better in snake_case
.
What Changed
In V2.0.17, all the components and example projects switched to use snake_case
for names.
Functions names also changed so $silentTick()
became $silent_tick()
.
The keyword testBench
also changed to testbench
.
It seems a bit inconsistent if the word testbench is two words or one, but it seems like it is more often seen as one.
I also thought using test_bench
as a keyword felt weird.
Auto-migration
If you open an older project with Alchitry Labs V2.0.17 or newer, it will automatically migrate your code.
This means files will be renamed and all camelCase
will be replaced with snake_case
.
Also, in the Io constraints and examples ioSel
became io_select
and ioSeg
became io_segment
for clarity.
The migration will change these names as well.
I'm sorry for any inconvenience this causes to anyone already using Alchitry Labs V2, but I believe in the long run this is the better choice.
I'll be updating the tutorials and documentation today to reflect these changes.