Например TDA7294

 Форум РадиоКот • Просмотр темы - Вопрос по Verilog
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вс дек 17, 2017 17:09:27



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос по Verilog
СообщениеДобавлено: Сб окт 01, 2016 14:17:46 
Родился

Зарегистрирован: Сб окт 01, 2016 14:03:46
Сообщений: 4
Рейтинг сообщения: 0
Здравствуйте!
Начал изучать Verilog и сразу возник вопрос.
Нашел код SPI протокола, все работает, компилируется, все хорошо.
Только есть одна проблема: Когда вывожу на диаграмму внутренние регистры модуля, они все находятся в неопределенном состоянии.
Перерыл все учебники по Verilog, великий гугл тоже отказался помогать.
Прошу помощи у знающих людей.
Выкладываю файл с кодом и тест-бенчем (на форум залить не смогу, так как больше 1 МБ)
Файл: http://www.fayloobmennik.net/6603390

Если потребуется могу сюда выложить открытый код.

P.S Писалось в Aldec HDL 9.3

Спасибо за внимание!


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Вс окт 02, 2016 13:48:36 
Друг Кота
Аватар пользователя

Карма: 7
Зарегистрирован: Пн июл 13, 2009 15:37:39
Сообщений: 3903
Откуда: Московская область, наукоград.....
Рейтинг сообщения: 0
TommyVersace писал(а):
Выкладываю файл с кодом и тест-бенчем (на форум залить не смогу, так как больше 1 МБ)

Вот не хочется мне копировать проект с обменников.
Сделайте две кодовые вставки с самим кодом и Вам наверняка помогут (уверен что только код на блок SPI и его тестбэнч весят гораздо меньше 1 МБ).

_________________
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже


Вернуться наверх
 Профиль  
 
JLCPCB Prototype, Бесплатная доставка первого заказа + $2 на прототип ПП!

Крупнейший производитель печатных плат в Китае, 290,000+ заказчиков, 8,000+ он-лайн заказов в день.

Цена за 10 плат: $2 за 2-х слойную, $15 за 4-х слойную, $74 за 6-ти слойную.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Вс окт 02, 2016 20:13:02 
Родился

Зарегистрирован: Сб окт 01, 2016 14:03:46
Сообщений: 4
Рейтинг сообщения: 0
Спасибо за совет.
Выкладываю 2 файла с кодом.

Хотелось бы понять почему внутренние регистры находятся в неопределенном состоянии и как это можно исправить/настроить.

Интересуют регистры "control" и "count"

Спасибо!


Вложения:
SPI.txt [5.02 KiB]
Скачиваний: 74
test_bench.txt [1.23 KiB]
Скачиваний: 73
Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Вс окт 02, 2016 22:45:51 
Друг Кота
Аватар пользователя

Карма: 7
Зарегистрирован: Пн июл 13, 2009 15:37:39
Сообщений: 3903
Откуда: Московская область, наукоград.....
Рейтинг сообщения: 0
Совсем слаб в верилоге.
Но даже просмотр по диагонали показал, что в проекте нет и намека на сигнал сброса и реакции на него (обнуление или установка в единицы) регистров.
Без этого сигнала, задействованные регистры имеют полное право находиться в любом состоянии сразу после включения питания.
Уверен на 99,9999(9)% что все Ваши беды именно в этом.
Добавьте сигнал сброса и проинициируйте им состояния регистров.

_________________
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Пн окт 03, 2016 09:04:04 
Родился

Зарегистрирован: Сб окт 01, 2016 14:03:46
Сообщений: 4
Рейтинг сообщения: 0
Ресет реализован в самом конце кода в блоке initial.

Initial
begin
mosi = 0;
control = 0;
.
.
.
count = 0;
end


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Пн окт 03, 2016 17:40:01 
Родился

Зарегистрирован: Сб окт 01, 2016 14:03:46
Сообщений: 4
Рейтинг сообщения: 0
Или, если максимально упростить, то можно рассмотреть такой пример:

`timescale 10ns/1ns

module test_bit (

input clk,
input reset,
input [7:0] data_1,
output reg P,
);

reg Z;

always @(posedge clk or negedge reset)
begin
if (reset)
begin
Z = 0;
end
else
begin
P = data_1[0] ^ data_1[1] ^ data_1[2] ^ data_1[3] ^ data_1[4] ^ data_1[5] ^ data_1[6] ^ data_1[7];
Z = P;

end
end

endmodule

Тест-бенч:

`timescale 1ps / 1ps
module test_bit_tb;


//Internal signals declarations:
reg clk;
reg reset;
reg [7:0]data_1;
wire P;
reg Z;


// Unit Under Test port map
test_bit UUT (
.clk(clk),
.reset(reset),
.data_1(data_1),
.P(P)
);

initial
begin
clk = 0;
reset = 0;
data_1 = 8'b1111_1111;
end

always
begin
#5 clk = ~clk;
end

initial
begin
clk = 1;
#10
reset = 1;
#10
reset = 0;
//data_1=8'b1111_1111;
#1000
$finish;
end
initial
$monitor($realtime,,"ps %h %h %h ",clk,reset,data_1,P,Z);

endmodule

И внутренний регистр "Z" находится в неопределенном состоянии даже после того как пришел сигнал ресет.

Изображение

Не могу понять в чем тут дело.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Вт апр 18, 2017 02:24:32 
Встал на лапы

Зарегистрирован: Пн сен 13, 2010 15:37:38
Сообщений: 96
Рейтинг сообщения: 0
Скорее всего схема просто не успевает выполнить сброс. У вас во первых условие negedge reset с последующей проверкой if (reset) бесполезно, а во вторых reset вы держите ровно между двумя posedge clock. Увеличьте время reset и поменяйте условие сброса на if (~reset).


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y