Proton 1 5 июля, 2006 Опубликовано 5 июля, 2006 · Жалоба При моделировании устройства имеющего двунаправленную шину, симулятор выдаёт сотни предупреждений Warning: found logic contention at xxx us at node 'xxx'. При этом на временной диаграмме низкие уровни отображаются правильно, а там где должны быть высокие уровни - заштрихованые области. Что с этим делать или как это можно исправить? Вот часть описания логики(we = 0): input [15:0] data_in; inout [15:0] data_out; output we; reg [15:0] data_latch; assign data_out[15:0]=we?(16'bz):data_latch[15:0]; always@(posedge clk or negedge reset) if(!reset) data_latch<=0; else data_latch<=data_in; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MurrVK 0 5 июля, 2006 Опубликовано 5 июля, 2006 · Жалоба Гм, не поленился, промоделировал у ся. Хотя ошибка в этом примере очевидна - we должен быть input. Как еще такое синтезатор ваш смог компилировать? :blink: Может я чего-то не понимаю? А в скобках we=0 это что такое? Компилятор такие записи не понимает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Proton 1 5 июля, 2006 Опубликовано 5 июля, 2006 · Жалоба Если ставить we входом и подать низкий уровень, то симулятор продолжает выдавать предупреждения. Мне нужно чтоб при we = 0 информация со входа после обработки попадала на выход и правильно отображалась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MurrVK 0 5 июля, 2006 Опубликовано 5 июля, 2006 · Жалоба Мой Квартус симулирует этот код module Test4( data_in, data_out, we, clk, reset); input clk; input reset; input [15:0] data_in; inout [15:0] data_out; input we; reg [15:0] data_latch; assign data_out[15:0]=we?(16'bz):data_latch[15:0]; always@(posedge clk or negedge reset) if(!reset) data_latch<=0; else data_latch<=data_in; endmodule без всяких ворнингов, просто замечательно. Вы вообще в чем симулируете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Proton 1 5 июля, 2006 Опубликовано 5 июля, 2006 · Жалоба Вы вообще в чем симулируете? Я написал в теме что моделирую в MAX+plus 2. С Квартусом ещё не работал, поскольку считал что он предназначен для проектирования навороченных кристалов семейств FLEX и APEX. Наверно если проблему решить не удасться буду переходить на Квартус. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 5 июля, 2006 Опубликовано 5 июля, 2006 · Жалоба Нет у Вас никаких проблем. Просто описание проекта не полное. У Вас нет inout [15:0] data_out; У ВАс есть только out [15:0] data_out; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Proton 1 6 июля, 2006 Опубликовано 6 июля, 2006 · Жалоба Это только часть кода, data_out используется и для считывания, направление шины переключается сигналом WE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 6 июля, 2006 Опубликовано 6 июля, 2006 · Жалоба Работа в Квартусе отличается от работы в МАХ только тем, что Квартус поддерживает верилог 2001, а МАХ нет. Вот и все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ishergin 0 6 июля, 2006 Опубликовано 6 июля, 2006 · Жалоба Работа в Квартусе отличается от работы в МАХ только тем, что Квартус поддерживает верилог 2001, а МАХ нет. Вот и все. Неудержусь :) Насколько мне известно MAX код с VHDL/Verilog переводит в AHDL, а потом синтезирует (или я ошибаюсь?). Дело в том что я когда начинал с CPLD альтеры так и не смог нормально заставить работать счетчик в MAX3000 на VHDL, на AHDL более навороченные проекты работали. Попытка перевести код VHDL в AHDL давала какую-то комбинаторную логику :( . C тех пор предпочитаю пользоваться нормальными синтезаторами :). 2 Proton Если квартус может синтезировать под Вашу плис то лучше работайте в нем, а не в дурацком МАХ :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 6 июля, 2006 Опубликовано 6 июля, 2006 · Жалоба чего за возня на пустом месте? http://www.altera.com/support/examples/ver...er_bidirec.html :santa2: (на будущее к вопросу о моделирование: моделировать нужно програмками для моделирования а не паяльной лампой) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Proton 1 7 июля, 2006 Опубликовано 7 июля, 2006 · Жалоба Благодарю всех ответивших, что наставили меня на путь истинный. Судя по ответам MAX+plus никто не использует, значит неспроста. Буду разбираться с Квартусом, тем более что даже указаный фирменный пример MAX+ моделирует с десятками предупреждений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 7 июля, 2006 Опубликовано 7 июля, 2006 · Жалоба Указанный файл без всяких предупреждений работает при моделировании в МАХ+. Если у Вас есть предупреждения, значит не выставили на входе bidir состояние zz в интервале oe. Нет плохих синтезаторов. Есть кривые руки. Да и кто Вам сказал, что Вы получите в Квартусе оптимальный код на старых кристаллах (тех, которые поддерживает МАХ+ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться