“是否有任何可能性?”;如果;块超出vhdl中给定的选项?

“是否有任何可能性?”;如果;块超出vhdl中给定的选项?,vhdl,vlsi,Vhdl,Vlsi,下面是使用IF块的VHDL代码。 在最后一个“elsif”中,“我的选择”的值被分配给“ch4”。然后执行“else”块,因为不满足任何条件。但是,“我的选择”是否有可能获得除(ch1、ch2、ch3、ch4)以外的其他值,如高阻抗(或其他任何值)?如果是的话,我怎样才能避免呢?因为此赋值可以更改代码的操作 entity entity_name port ..... ..... end entity_name; architect

下面是使用IF块的VHDL代码。 在最后一个“elsif”中,“我的选择”的值被分配给“ch4”。然后执行“else”块,因为不满足任何条件。但是,“我的选择”是否有可能获得除(ch1、ch2、ch3、ch4)以外的其他值,如高阻抗(或其他任何值)?如果是的话,我怎样才能避免呢?因为此赋值可以更改代码的操作

    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”标记)是一种很好的做法,因此,其他用户可以优先安排他们的时间。