使用 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;
我正在使用 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;