Перейти к содержанию
    

1. скорее всего глюк ISE, он рассматривает каждый файл как раздельный compilation unit, хотя должен был как один.

2. правильный способ использования инклуд файлов подразумевает наличие макросов "исключительности"

3. декларировать константы через макросы ИМХО не красиво, но можно, но вот имена состояний в FSM низачто %)

 

я имена состояний автоматов пишу так:

 

// fsm

localparam STATE_PAUSE =3'd0;

localparam STATE_HEADER =3'd1;

 

и константы так же пишу. Оот использования дефайнов отошел-не знаю почему...мне просто так проще

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

`timescale 1ns / 1ps

`include "my_params.v"

 

module test_include (In, Out);

 

input In;

output [7:0] Out; wire [7:0] Out;

 

assign Out=(In)?(`CONST_A):(`CONST_B);

 

endmodule //test_include

 

все видит-только что проверил

 

как понимаю у автора проблема другого плана, сделайте другой файл, в него включите макрос и пусть он будет обработан первым. По идее все должно работать, но у автора нет %)

 

Оот использования дефайнов отошел-не знаю почему...мне просто так проще

 

не только, при использовании в проекте больше 1 КА надо будет следить за уникальностью имен %) и предупреждать коллег об этом если работаете в команде %)

 

 

А как декларировать константы "красиво"? :)

 

1. как уже написали через localparam, при этом если их декларировать с типом, то можно упростить задание констант + этот способ удобнее при наличие математики в константах. Например

localparam cAGC_LEVEL = 0.707*pREF_LEVEL*pREF_LEVEL;

2. макросы исключительности это что то вроде

 

`ifndef __PIPA_VH__

`define __PIPA_VH__

 

bla-bla-bla

`endif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, ну здорово, а как красиво, когда константа применяется в 10 файлах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, ну здорово, а как красиво, когда константа применяется в 10 файлах?

 

если это SV, то в глобальную область видимости : инклуд в шапке + макросы исключительности (что бы не было переопределения) и это в каждом файле где она используется.

если это V, то только в область видимости модуля : инклуд в самом модуле БЕЗ макросов исключительности и это в каждом файле где она используется

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, ну здорово, а как красиво, когда константа применяется в 10 файлах?

 

ctrl+C и ctrl+V. Зато это локальные параметры. Иначе когда проект большой -запаришься придумывать названия. Да и я не помню чтою это меня напрягало в пару мест скопировать. А насчет 10 раз... такое если и будет-то редко мне кажись

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...