Например TDA7294

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





Текущее время: Вт апр 16, 2024 10:48:05

Часовой пояс: UTC + 3 часа


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



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

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

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

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

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


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

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Вс окт 02, 2016 19:13:02 
Первый раз сказал Мяу!

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

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

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

Спасибо!


Вложения:
SPI.txt [5.02 KiB]
Скачиваний: 272
test_bench.txt [1.23 KiB]
Скачиваний: 304
Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Вс окт 02, 2016 21:45:51 
Друг Кота
Аватар пользователя

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

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


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Пн окт 03, 2016 08:04:04 
Первый раз сказал Мяу!

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

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


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос по Verilog
СообщениеДобавлено: Пн окт 03, 2016 16:40:01 
Первый раз сказал Мяу!

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб окт 01, 2016 13:03:46
Сообщений: 24
Рейтинг сообщения: 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 01:24:32 
Встал на лапы

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


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

Часовой пояс: UTC + 3 часа


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

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


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

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


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