使用 VHDL 中的初始化自动限制字符串大小

Automatically constrain string size using initialization in VHDL

我正在使用 VHDL,我想知道是否有任何方法可以在声明字符串时使用初始化来限制它的大小。例如,我们声明一个字符串如下:

variable sequence : string(1 to 20) := "AGTAACCAATTCGCATTCGC";

我想知道是否有任何方法可以做类似的事情:

variable sequence : string := "AGTAACCAATTCGCATTCGC";

当然,第二行无效,因为解释器说:

[VRFC 10-1547] variable cannot be unconstrained

不需要约束常量,所以你可以这样做:

constant Csequence : string := "AGTAACCAATTCGCATTCGC";
variable Vsequence : string(Csequence'range) := Csequence;

https://www.edaplayground.com/x/r3wK

entity E is
end entity E;

architecture A of E is
begin
  process
    constant Csequence : string := "AGTAACCAATTCGCATTCGC";
    variable Vsequence : string(Csequence'range) := Csequence;
  begin
  wait;
  end process;
  
end architecture A;