umarcor on keep-compiling
ci: use the built-in '--keep-co… (compare)
umarcor on cosim
cosim/dpi-ffi: add 'vhdpi_ghdl.… cosim/dpi-ffi: add VHDPI_Test (compare)
umarcor on cosim
WIP setenv (compare)
umarcor on main
cosim/dpi-ffi/ghdl-vffi/test: a… (compare)
umarcor on cosim
umarcor on main
WIP envvars (compare)
umarcor on cosim
WIP envvars (compare)
umarcor on master
umarcor on main
umarcor on cosim
umarcor on master
cosim/dpi-ffi: create subdir 'g… cosim/dpi-ffi: fix compilation … cosim/dpi-ffi/ghd-vffi: use VUn… and 2 more (compare)
umarcor on cosim
ci: add workflow CoSim cosim/dpi-ffi: add README (compare)
umarcor on cosim
ci: add workflow CoSim cosim/dpi-ffi: add README (compare)
umarcor on cosim
cosim/dpi-ffi: create subdir 'g… cosim/dpi-ffi: fix compilation … cosim/dpi-ffi/ghd-vffi: use VUn… and 2 more (compare)
umarcor on top-subtype
umarcor on master
2008: ad tb_top_generic_subtype cosim: add ref to aguinet/drago… (compare)
umarcor on top-subtype
2008: ad tb_top_generic_subtype (compare)
umarcor on top-subtype
2008: ad tb_top_generic_subtype (compare)
umarcor on top-subtype
2008: ad tb_top_generic_subtype (compare)
umarcor on style
Hi All,
I'm Taichi Ishitain. I'd like to inform my CSR automation tool named 'RgGen'.
RgGen is a tool to generate RTL, UVM reg model and Markdown from human readable register map specification written in YAML, JSON, TOML, Ruby and Excel.
https://github.com/rggen/rggen
Recently, I've published VHDL writer plugin for RgGen. You can generate CSR modules written in VHDL automatically by using RgGen and this plugin.
https://github.com/rggen/rggen-vhdl
You can find sample register map and generated VHDL modules from following links.
Thank you for your attention
in
.
in
, then one could use mode constant.
I came across this oddity compiling my testbench today.
package gen_pkg is
generic ( W : natural );
constant CONST : natural := W;
end package gen_pkg;
entity name_clash is
end entity name_clash;
architecture clash of name_clash is
package pkg is new work.gen_pkg generic map( 8 );
use pkg.all;
begin
p: process
package pkg is new work.gen_pkg generic map( 9 );
use pkg.all;
begin
report to_string(CONST);
wait;
end process;
end architecture;
With this code, I get the error that the reference to CONST
is ambiguous as it can I see two packages where it is visible. The question is, I know I can get to pkg.CONST
local to the process, but how could I get the reference to CONST
in the package in the architecture?
( The double declaration in my code was an error, but it got me wondering )
p.
but I'm not sure if it is p.pkg.CONST
or just p.CONST
because you used all
.
PS C:\Temp> ghdl.exe -a --std=08 "C:\msys64\home\Patrick Lehmann\temp\trickyhead.vhdl"
C:\msys64\home\Patrick Lehmann\temp\trickyhead.vhdl:19:13:warning: declaration of "pkg" hides instantiation package "pkg" [-Whide]
package pkg is new work.gen_pkg generic map( 9 );
^
C:\msys64\home\Patrick Lehmann\temp\trickyhead.vhdl:22:22: no declaration for "const" (due to conflicts)
report to_string(CONST);
^
C:\msys64\mingw64\bin\ghdl.exe: compilation error
entity name_clash is
end entity name_clash;
architecture clash of name_clash is
constant CONST2 : bit := '0';
begin
p: process
constant CONST2 : bit := '0';
begin
report to_string(CONST2);
wait;
end process;
end architecture;
-Whide
warning, but no error.
Use
behave differently.
entity name_clash is
end entity name_clash;
architecture clash of name_clash is
begin
p: process
package pkg is new work.gen_pkg generic map( 9 );
use pkg.all;
begin
# report to_string(CONST);
wait;
end process;
process
begin
report to_string(CONST);
wait;
end process;
end architecture;
If the LRM states the above written text, then this code should work.but you have no visible package to get
CONST
in the 2nd process?
I did an inverse proof. When the LRM says both Use Clauses can not hide each other, they must be in the same scope.
This means, the Use Clause is applied to the parent layer (here architecture). If it's applied to the Process, it would be a new scope and thus can not collide.
So if it's in the architecture layer, it should be visible in the 2nd process, right?
But it's not.
CONST2
character
is defined over USASCII, so character'pos(character'right)
is 127.character
is defined over ISO8859-1 so character'pos(character'right)
is 255.