Диапазон Спецификации Verilog - PullRequest
0 голосов
/ 27 апреля 2020

Я читаю два источника, которые, кажется, дают мне противоречивую информацию о правилах, касающихся спецификации диапазона. Это говорит о том, что " Идентичные имена экземпляров не могут появляться дважды с другими спецификациями диапазонов (даже если диапазоны не перекрывают друг друга) ", в то время как Учебное пособие Intel по основам Verilog имеет пример 4-битного сдвига в метке времени 34:28 со следующим кодом:

integer i;

always@(inp,cnt)begin
  result[7:4] = 0;
  result[3:0] = inp;

  if(cnt==1)begin

    for(i=4; i<=7; i=i+1)begin
      result[i]=result[i-4];
    end

    result[3:0] = 0;

  end

end

Не будет "result [7: 4]" и "result [3: 0]" быть Имя экземпляра, которое встречалось дважды с «другими спецификациями диапазона», одно из которых было [7: 4], а другое - [3: 0]? Или я неправильно понимаю, что подразумевается под "другими характеристиками диапазона"?

1 Ответ

2 голосов
/ 27 апреля 2020

«Спецификация диапазона» относится к созданию нескольких экземпляров модуля одновременно. Например, это неверно:

my_module m [3:0] (...);
my_module m [7:4] (...);

То, что у вас есть в вашем примере, называется ' Part-select '.

...