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

inout pin;

 

assign pin = (enable) ? bus_out: 1'bz;

assign bus_in = pin;

 

В итогде pin сдвинут на такт относительно bus_out а bus_in сдвинут еще на такт относительно pin. Куда копать?

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


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

inout pin;

 

assign pin = (enable) ? bus_out: 1'bz;

assign bus_in = pin;

 

В итогде pin сдвинут на такт относительно bus_out а bus_in сдвинут еще на такт относительно pin. Куда копать?

 

Наверно enable с выхода триггера получаете

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


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

Наверно enable с выхода триггера получаете

А какая разница?

Ну написал я

if(...)begin

enable <= 1'b1;

bus_out <= 1'b1;

end

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


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

Посоветовал бы копать в сторону примитивов типа tri, iobuf, и т.д..

Т.е. явно указывать о двунаправленной ноге.

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


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

А какая разница?

Ну написал я

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

 

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


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

Не понял. Так что мне написать чтобы задержек не было?

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


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

А дело не может быть банально в малом соотношении временного шага моделирования и периода тактирования?

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


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

Не понял. Так что мне написать чтобы задержек не было?

Понял. Пробую.

 

С ALTIOBUF таже фигня.

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


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

Покажите текст.

Ну какой текст может быть? Есть модуль, у него есть oe, пин, вход и выход нарисованый в мегавизарде. На вход модуля подаю сигнал синхронно с oe, (SPI делаю). Подключил signal tap ко входу, выходу и пину. Вижу что на пине сигнал сдвинут на один такт, относительно входа модуля, и выход модуля сигнал еще на 1 сдвинут.

 

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


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

Вы понимаете, эти буферы - очень простая штука, с которыми проблем быть не должно в принципе.

А они есть.

Значит, что-то простое или написано не так, как надо, или работает не так, как надо.

 

Кстати, какое семейство?

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


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

Вы понимаете, эти буферы - очень простая штука, с которыми проблем быть не должно в принципе.

А они есть.

Значит, что-то простое или написано не так, как надо, или работает не так, как надо.

Вот то-то и оно. Но. Сигнал-тап говорит совсем иначе. Что там можно напутать я не представляю. Может быть какая-то фишка именно реализации порта. Хотя КАК?

 

Кстати, какое семейство?

Ария вторая. Но фишка в том, что тот кусок должен работать и на максе втором. Не хочется плодить сущностей.

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


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

Что там можно напутать я не представляю.

Если Вы рассчитываете на помощь, давайте необходимые данные.

А что говорит симулятор?

 

Ария вторая.

А там нет какой-нибудь фишки типа обязательного подключения сигнала разрешения через триггер блока I/O?

Изменено пользователем Koluchiy

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


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

Если Вы рассчитываете на помощь, давайте необходимые данные.

Так я уже сказал что мог.

 

А что говорит симулятор?

О! Это идея. Надо сделать небольшой проектик и прогнать только IO в симуляторе.

 

А там нет какой-нибудь фишки типа обязательного подключения сигнала разрешения через триггер блока I/O?

Не встречал. Я просто попробовал на верилоге написать, через assign, потом сгенерил мегавизардом. Одинаково работает. В понедельник буду дальше копать.

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


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

Так сделайте простейший проект с "глюком" и выложите сюда. Может быть, и выкладывать не придется, все окажется просто. Как говорится, "разделяй и властвуй".

P.S. пока писал, сами к этому пришли :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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