lievenlemiengre on views
Validated & fixed definitions w… (compare)
Paebbels on views
Added view implementations for … (compare)
Paebbels on views
Added a view implementation for… (compare)
Paebbels on views
Renamed package files to `*.pkg… (compare)
Paebbels on views
Added first implementation of l… (compare)
Paebbels on range-arithmetic
Added range arithmetic packages… (compare)
Paebbels on generic-list
Committed pending changes. (compare)
tmeissner on tbv2_associative_array
Add tests for dict with strings… (compare)
LarsAsplund on tbv7-event-object
Added more test cases (compare)
LarsAsplund on tbv7-event-object
Cleaning up Added more test cases (compare)
tmeissner on tbv2_associative_array
Some fixes to make generic dict… (compare)
Paebbels on master
Updated URL (compare)
in verilog it is possible to do sig <= {8'd9, 8'h5} is there something equal in vhdl?
It is:sig <= 8d"9" & 8x"5"
These are bitstring literals with modifiers:
The number in front of the modifier is the length in bits to generate.
The modifier can be specified as signed or unsigned with s
and u
E.g. 8ux"5"
This is important if bit sizes are more or less the the given number and the sign bit needs to be extended or reduced.
is q <= '0' when reset else d if rising_edge(clock); allowed in vhdl-2008?
if is not allowed in this, you need a second when.
See in PoC's components package for different one-liner flip-flops.
q <= ffdre(Q => q, D => data, => RST => Reset) when rising_edge(Clock);
enable and INIT is optional
libghw
is built and installed by default now. I need to update that in the article.
First I agree 100% with @trickyhead_gitlab WRT readability being # 1 concern - that drives reuse.
Just consider, if you receive an entity from one of your colleagues, are you going to reuse it you cannot read what they did or are you going to write your own?
Next what I have been seeing in synthesis is that Y <= A + B
is implemented in regular LUTs. In addition, I am seeing more implementations supporting Carry Sum/Save Adders in LUTs. Meaning that one LUT can implement one bit of Y <= A + B + C ;
in a good synthesis tool and target implementation
temp
only as 9 bit, as that is all that is required:op : out unsigned(8 downto 0);
signal a,b : unsigned(7 downto 0);
signal temp : integer;
process(clk)
begin
if rising_edge(clk) then
temp <= to_integer(a)+ to_integer(b);
op <= to_unsigned(temp, op'length)
end if;
end process;