Methane 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба inout pin; assign pin = (enable) ? bus_out: 1'bz; assign bus_in = pin; В итогде pin сдвинут на такт относительно bus_out а bus_in сдвинут еще на такт относительно pin. Куда копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба inout pin; assign pin = (enable) ? bus_out: 1'bz; assign bus_in = pin; В итогде pin сдвинут на такт относительно bus_out а bus_in сдвинут еще на такт относительно pin. Куда копать? Наверно enable с выхода триггера получаете Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба Наверно enable с выхода триггера получаете А какая разница? Ну написал я if(...)begin enable <= 1'b1; bus_out <= 1'b1; end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба Посоветовал бы копать в сторону примитивов типа tri, iobuf, и т.д.. Т.е. явно указывать о двунаправленной ноге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба А какая разница? Ну написал я if(...)begin enable <= 1'b1; bus_out <= 1'b1; end Этот кусок ни о чем не говорит. Если это без else, квартус должен выкинуть этот триггер по умолчанию. Наверно идея далека от реальности. пример `timescale 1 ns / 1 ps module bi_dir ( input clk_60, input ena, inout [3:0] data, input oe_n ); reg [3:0] data_rg = 4'd0; always @(posedge clk_60) begin if(ena) data_rg <= data; end assign data = (!oe_n) ? data_rg : 4'hz; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба Не понял. Так что мне написать чтобы задержек не было? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба А дело не может быть банально в малом соотношении временного шага моделирования и периода тактирования? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба Не понял. Так что мне написать чтобы задержек не было? Понял. Пробую. С ALTIOBUF таже фигня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 · Жалоба С ALTIOBUF таже фигня. Покажите текст. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 19 декабря, 2010 Опубликовано 19 декабря, 2010 · Жалоба Покажите текст. Ну какой текст может быть? Есть модуль, у него есть oe, пин, вход и выход нарисованый в мегавизарде. На вход модуля подаю сигнал синхронно с oe, (SPI делаю). Подключил signal tap ко входу, выходу и пину. Вижу что на пине сигнал сдвинут на один такт, относительно входа модуля, и выход модуля сигнал еще на 1 сдвинут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 19 декабря, 2010 Опубликовано 19 декабря, 2010 · Жалоба Вы понимаете, эти буферы - очень простая штука, с которыми проблем быть не должно в принципе. А они есть. Значит, что-то простое или написано не так, как надо, или работает не так, как надо. Кстати, какое семейство? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 19 декабря, 2010 Опубликовано 19 декабря, 2010 · Жалоба Вы понимаете, эти буферы - очень простая штука, с которыми проблем быть не должно в принципе. А они есть. Значит, что-то простое или написано не так, как надо, или работает не так, как надо. Вот то-то и оно. Но. Сигнал-тап говорит совсем иначе. Что там можно напутать я не представляю. Может быть какая-то фишка именно реализации порта. Хотя КАК? Кстати, какое семейство? Ария вторая. Но фишка в том, что тот кусок должен работать и на максе втором. Не хочется плодить сущностей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 19 декабря, 2010 Опубликовано 19 декабря, 2010 (изменено) · Жалоба Что там можно напутать я не представляю. Если Вы рассчитываете на помощь, давайте необходимые данные. А что говорит симулятор? Ария вторая. А там нет какой-нибудь фишки типа обязательного подключения сигнала разрешения через триггер блока I/O? Изменено 19 декабря, 2010 пользователем Koluchiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 19 декабря, 2010 Опубликовано 19 декабря, 2010 · Жалоба Если Вы рассчитываете на помощь, давайте необходимые данные. Так я уже сказал что мог. А что говорит симулятор? О! Это идея. Надо сделать небольшой проектик и прогнать только IO в симуляторе. А там нет какой-нибудь фишки типа обязательного подключения сигнала разрешения через триггер блока I/O? Не встречал. Я просто попробовал на верилоге написать, через assign, потом сгенерил мегавизардом. Одинаково работает. В понедельник буду дальше копать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 19 декабря, 2010 Опубликовано 19 декабря, 2010 · Жалоба Так сделайте простейший проект с "глюком" и выложите сюда. Может быть, и выкладывать не придется, все окажется просто. Как говорится, "разделяй и властвуй". P.S. пока писал, сами к этому пришли :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться