Koluchiy 0 8 сентября, 2009 Опубликовано 8 сентября, 2009 · Жалоба А как декларировать константы "красиво"? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 8 сентября, 2009 Опубликовано 8 сентября, 2009 · Жалоба 1. скорее всего глюк ISE, он рассматривает каждый файл как раздельный compilation unit, хотя должен был как один. 2. правильный способ использования инклуд файлов подразумевает наличие макросов "исключительности" 3. декларировать константы через макросы ИМХО не красиво, но можно, но вот имена состояний в FSM низачто %) я имена состояний автоматов пишу так: // fsm localparam STATE_PAUSE =3'd0; localparam STATE_HEADER =3'd1; и константы так же пишу. Оот использования дефайнов отошел-не знаю почему...мне просто так проще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 сентября, 2009 Опубликовано 8 сентября, 2009 · Жалоба `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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 8 сентября, 2009 Опубликовано 8 сентября, 2009 · Жалоба Не, ну здорово, а как красиво, когда константа применяется в 10 файлах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 сентября, 2009 Опубликовано 8 сентября, 2009 · Жалоба Не, ну здорово, а как красиво, когда константа применяется в 10 файлах? если это SV, то в глобальную область видимости : инклуд в шапке + макросы исключительности (что бы не было переопределения) и это в каждом файле где она используется. если это V, то только в область видимости модуля : инклуд в самом модуле БЕЗ макросов исключительности и это в каждом файле где она используется Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 8 сентября, 2009 Опубликовано 8 сентября, 2009 · Жалоба Не, ну здорово, а как красиво, когда константа применяется в 10 файлах? ctrl+C и ctrl+V. Зато это локальные параметры. Иначе когда проект большой -запаришься придумывать названия. Да и я не помню чтою это меня напрягало в пару мест скопировать. А насчет 10 раз... такое если и будет-то редко мне кажись Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться