“是否有任何可能性?”;如果;块超出vhdl中给定的选项?
下面是使用IF块的VHDL代码。 在最后一个“elsif”中,“我的选择”的值被分配给“ch4”。然后执行“else”块,因为不满足任何条件。但是,“我的选择”是否有可能获得除(ch1、ch2、ch3、ch4)以外的其他值,如高阻抗(或其他任何值)?如果是的话,我怎样才能避免呢?因为此赋值可以更改代码的操作“是否有任何可能性?”;如果;块超出vhdl中给定的选项?,vhdl,vlsi,Vhdl,Vlsi,下面是使用IF块的VHDL代码。 在最后一个“elsif”中,“我的选择”的值被分配给“ch4”。然后执行“else”块,因为不满足任何条件。但是,“我的选择”是否有可能获得除(ch1、ch2、ch3、ch4)以外的其他值,如高阻抗(或其他任何值)?如果是的话,我怎样才能避免呢?因为此赋值可以更改代码的操作 entity entity_name port ..... ..... end entity_name; architect
entity entity_name
port
.....
.....
end entity_name;
architecture bhvr of entity_name
type choices is (ch1, ch2, ch3, ch4);
signal my_choice,next_choice : choices;
begin
process(clk, reset)
begin
if reset='1' tehn
--------reset
else
my_choice<=next_choice;
end if;
end process;
process(my_choice)
begin
if my_choice = ch1 then
next_choice <= ch2;
elsif my_choice = ch2 then
next_choice <= ch3;
elsif my_choice = ch3 then
next_choice <= ch4;
else ------------------------------------coming to ch4
---- task for ch4
end process;
end architecture;
实体名称
港口
.....
.....
结束实体名称;
实体名称的架构bhvr
类型选择为(ch1、ch2、ch3、ch4);
表示我的选择,下一个选择:选择;
开始
过程(时钟、复位)
开始
如果reset='1'tehn
--------重置
其他的
my_choice由于my_choice
是类型choices
,它是带有值“ch1”、“ch2”、“ch3”、“ch4”的枚举类型,因此my_choice
将始终具有这4个值中的一个,至少在模拟中是这样
在硬件中,可用的值空间取决于实现,例如,值是作为一个热的还是二进制的。启动后,重置是一种很好的方法,可以确保该值定义为4个值中的一个,如果电路符合定时要求,则该值将保留在4个值的定义值空间中。@Raviteja:如果此答案解决了您的问题,则单击“接受”(左侧的“V”标记)是一种很好的做法,因此,其他用户可以优先安排他们的时间。