[an error occurred while processing this directive]
Акулам Verilog - а?
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ur3itp 16 декабря 2002 г. 16:39

Помогите разобраться в двух вопросах.

До этого все проекты делал с использованием АHDL, стал изучать Verilog и с этим возникло масса вопросов , так что прошу сильно не ругать если что не так. Для сравнения сделал модуль VGA контролера 800*600 с использованием AHDL и Verilog (см. ниже) описания для ACEX ep1k10tc100-3.
После компиляции проета паписаного на AHDL(VGA контролера) я получил производительность (88Мгц).
Решил ознакомится с Verilog, делал некоторые модули все работало. Встал вопрос в каком пакете производить синтез.
Начал с FPGA compiler 2 , установил в настройках для оптимизации по скорости, получил *.edf фаил. Далее я этот фаил в Max+ ставлю вершиной проекта устанавливаю настройки для максимальной оптимизации по скорости получаю максимальную производительность (70 Мгц), все красиво в Floorplan editor использованы переносы для счетчиков в общем доволен. Делаю то же самое в Квартус 2.1и тут непонятки... По настройкам, оптимизация по скорости, автопереносы разрешены отключено игнорирование, и еще ряд настроек, а в отчете вижу что квартус переносы все игнорирует и floorplan показывает раздутое размещение логики в LUT (производительность едва дотягивает 45Мгц). Как не изголялся в настройках так и несмог добится результатов как MAX+ . ----------------- В чем моя неграмотность?

С ледующим моим шагом было ознакомление с Synplify pro (Выбор сделан исходя из статистики конференции). Создал фаил ограничений подключил его к проекту откомпилировал,
и стал проделывать эксперементы (см выше) тут результаты вобще удручающие (32Мгц) в обоих пакетах. Подскажите в чем особенность использования edf фаилов или какие особенности в настройках Synplify для ACEX.

Всем кто внесет свет в мои тесты заранее благодарю.

`define HI 1'b1
`define LO 1'b0

module video
(SysClk,
rst,
h_sync,
v_sync,
video,
adr_ram,
strb);
// port
input SysClk,rst;
output h_sync,v_sync;
output video;
output [18:0] adr_ram;
output strb;
//*************************************
reg [1:0] h_state,v_state;
reg [10:0] h_counter;
reg [9:0] v_counter;
reg [18:0] adr_ram;
reg ta,tb;
reg video;
reg h_sync,v_sync;
wire v_enable;
wire sclr_h,sclr_v;

assign v_enable = (h_counter == 1055);
assign sclr_h = (h_counter == 1055);
assign sclr_v = (v_counter == 627);
assign strb = video & !SysClk;

// horizontal sync
always @ (posedge SysClk or negedge rst)
if (~rst)
begin
h_state = 2'b00;
h_counter = 11'b0;
end
else
begin
if (sclr_h)
h_counter = 0;
else
h_counter = h_counter+ 1;

case (h_state)
2'b00: if (h_counter == 799) // work area
h_state = 2'b01;
2'b01: if (h_counter == 842) // back proach h_state = 2'b10;
2'b10: if (h_counter == 970) // horizontalsync
h_state = 2'b11;
2'b11: if (h_counter == 1055) //front proach
h_state = 2'b00;
endcase
end
// vertical sync
always @ (posedge SysClk or negedge rst)
if (~rst)
begin
v_state = 2'b00;
v_counter = 2'b00;
end
else
if(v_enable)
begin
if(sclr_v)
v_counter = 0;
else
v_counter = v_counter + 1;

case (v_state)
2'b00: if(v_counter == 599) //work area
v_state = 2'b01;
2'b01: if(v_counter == 602) //back proach
v_state = 2'b10;
2'b10: if(v_counter == 606) //vertical sync
v_state = 2'b11;
2'b11: if(v_counter == 627)//front proach
v_state = 2'b00;
endcase
end

always @ (posedge SysClk)
begin
ta = ((h_state == 2'b00)&&(v_state == 2'b00));
tb = ta;
video = tb;
h_sync = ~(h_state == 2'b10);
v_sync = ~(v_state == 2'b10);
end
// counter address to ram
always @ (posedge SysClk or negedge rst)
begin
if (~rst)
adr_ram = 0;
else
if (adr_ram == 479999)
adr_ram = 0;
else
if((h_state == 2'b00)&&(v_state == 2'b00))
adr_ram=adr_ram + 1;
end

endmodule

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru