Неопределенный сигнал в симуляции - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь проверить дизайн, написанный на VHDL, используя утверждения SystemVerilog.однако у меня возникла проблема, когда у меня есть неопределенный сигнал 'X'

. Например, вот код компаратора:

entity FP_comparator_V2 is
port (
    comp_in1                    : in    std_logic_vector(31 downto 0);
    comp_in2                    : in    std_logic_vector(31 downto 0);
    less                        : out   std_logic;
    equal                       : out   std_logic;
    greater                     : out   std_logic
    );
end FP_comparator_V2;

architecture behav of FP_comparator_V2 is
   -- signal, component etc. declarations

begin
   -- architecture body

    process(comp_in1, comp_in2)
    begin
    if comp_in1 = comp_in2 then
        equal                   <= '1';
        less                    <= '0';
        greater                 <= '0';

    else 
        equal                   <= '0';
...



   end if;
    end process;        
end behav;

и утверждения

property FP_Comparator_V2_1_1;
@(posedge `assertion_check_clk29M4912 or negedge `assertion_check_clk29M4912)
    (fp_comp_intf.Comp_in1 === fp_comp_intf.Comp_in2) |-> (fp_comp_intf.equal);

endproperty

DS_3_4_69_1_1:
assert property(FP_Comparator_V2_1_1);
cover property(FP_Comparator_V2_1_1);

property FP_Comparator_V2_1_2;
    @(posedge `assertion_check_clk29M4912 or negedge `assertion_check_clk29M4912)
        (fp_comp_intf.Comp_in1 !== fp_comp_intf.Comp_in2) |-> (!fp_comp_intf.equal);
endproperty

DS_3_4_69_1_2:
assert property(FP_Comparator_V2_1_2);
cover property(FP_Comparator_V2_1_2);

Когда Comp_int1 и Comp_int2 имеют определенные значения, симуляция работает нормально, если один из них имеет неопределенное значение, также работает нормально, но когда оба сигнала имеют неопределенное значение, это дает ошибку. Например:

Comp_int1 = 48xx_xxxx;Comp_int2 = 47xx_xxxx ==> Equal = 1

Я полагаю, он сравнивается побитно, поэтому Equal должен быть равен 0. Пожалуйста, если вы знаете книгу или веб-сайт, объясняющий поведение сигналов после синтеза илилогика за неопределенными сигналами Буду благодарен, если вы добавите это в комментарий

спасибо

1 Ответ

0 голосов
/ 16 октября 2018

Я бы предложил сначала исключить неопределенные значения для сигналов в проекте.Вы можете сделать это, инициализируя значения для этих сигналов во всех возможных случаях.Это помогает устранить распространение X в проекте.

...