News for hackers. Stuff that matters.
Re:Chisel: A Modern Hardware Design Language by ux01 on Wednesday December 27, 2023 @11:50AM (#38783804)
Are you active in the SpinalHDL community? Reason for asking is this page:

https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/F...

has an example that says for VHDL you need to write three separate processes. FWIW, that's not true, you can write it as one:

process (clk, rst, cond) begin if rising_edge(clk) then if cond = '1' then my_reg <= my_reg + 1; my_reg_with_rst <= my_reg_with_rst + 1; end if; end if; if rst = '1' then my_reg_with_rst <= x"0"; end if; my_signal <= cond; end process;

Also note that isn't a VHDL thing but a synthesis thing. But I think you'll be hard pushed to find a synthesiser that won't synthesise the above code correctly. Quartus, Vivado, Diamond, Libero, and ISE will all synthesise it correctly. I expect most of those tools will also accept process (all) as well, instead of having to write out the sensitivity list explicitly.

Re:Chisel: A Modern Hardware Design Language by ux01 on Wednesday December 27, 2023 @11:52AM (#38783833)
Ah ok, copying and pasting code into the comment box doesn't retain code formatting ...
Re:Chisel: A Modern Hardware Design Language by ur-whale on Wednesday December 27, 2023 @01:29PM (#38784922)
Yeah, this is one of the most heinous feature of HN's comment box.
Re:Chisel: A Modern Hardware Design Language by Dolu on Wednesday January 10, 2024 @04:05AM (#38937968)
> FWIW, that's not true, you can write it as one:

While technicaly you are right, i think you missed the spirit of what the doc was saying.

You may write it all in a single process, but you will always have duplicated code blocks, especialy if those 3 types of hardware (ff,ff with reset, comb) share assignements with the same condition.