CPLD XC9572 Loopback сигнал операції -

T

thtasuja

Guest
Привіт, друзі,
У мене дивна проблема я вирішенні протягом декількох тижнів.Може бути, Ви могли б допомогти мені в цьому.
У мене машина з внутрішнім станом (ініціалізований внутрішній сигнал).Я смузі дизайн вниз для простоти.Він повинен бути в змозі побітовое і внутрішній сигнал, і вихідний.Але з ISE його синтезу з РЕЗУЛЬТАТ.Я вже пробували іншими операторами, а звернутись до мого 'result_internal' ( 'result_internal: ='1'
І 'result_internal (5 downto 2); - право на зміну), але нічого не здається Toi працювати коректно.
Тим не менш, статус сигналу 'status_internal' робить висновок світлодіод блимає, як очікувалося.Отже, де можуть бути проблеми в цьому коді?

З повагою, Томас

Код:- Годинник: 2 кГцБІБЛІОТЕКА IEEE;

ВИКОРИСТАННЯ ieee.std_logic_1164.ALL;

Використання IEEE.numeric_std.ALL;організація машина

загального (NUM_OF_LEVELS: позитивна: = 5);порт (

CLK: в бітний;

Результат: з bit_vector (NUM_OF_LEVELS downto 1);

STATUS_LEDS: з bit_vector (1 downto 0)

);

кінець MACHINE;
модель архітектури з машини

Сигнал change_sensed: бітний;

сигнал result_internal: bit_vector (NUM_OF_LEVELS downto 1): = "10101";

сигнал status_internal: bit_vector (1 downto 0): = "00";починати

РЕЗУЛЬТАТ <= result_internal;

STATUS_LEDS <= status_internal;---------------- Devide 2kHz до 0.5Hz----------------------

процес (CLK)кол мінлива: ціле число від 0 до 1000;починати

якщо clk'event і CLK ='1 ', а потім

якщо розраховувати <1000 потім

Кол-во: = кол 1;

ще

Count: = 0;

change_sensed <= не change_sensed;

End If;

End If;

закінчення процесу;---------------- Обчислити виводу результатів ----------------------

elevator_travel: процес (change_sensed)починатиresult_internal <= result_internal И "11100"; - І операндів

status_internal (0) <= change_sensed;закінчення процесу;кінець моделі;

 
Привіт,

Я не думаю, я розумію, що ви хочете створити ваш сигнал result_internal отримує тільки один раз на суму,
що покладені на неї, так що вихід результаті отримує також тільки один раз у вартість:

result_signals <= result_signals И "11100";

t0: 10101 та 11100 = 10100
t1: 10100 та 11100 = 10100
t2-TN 10100 та 11100 = 10100

Devas

 
Здравствуйте!

Дякую Вам за швидку відповідь!
Ваша точка є абсолютно правильним.У початковий проект існує більш складна державна машина, а як бітні операції не працює (І, АБО, зсув і т.д.) для бітні масиви, я вирішив позбавити дизайн вниз на цьому форумі.

Як ви написали, він повинен давати "10100" в якості результату, але в реальному установки дає "00000" на виході.Так, н не в порядку з та експлуатації.(без цього та експлуатації вона дає "10101" - ініціалізований сигнал, як виправити).

PS:
хтось сказав мені, що може бути
пов'язано з обмеженнями, які CPLD не може зробити 5-бітний побітовое операцій.Але я не можу повірити в це.

З повагою, Томас

 
Привіт Томас,

Оці, я розумію (загальний питання, коли ви смузі ваш код).

Думаю, це щось робити зі зворотного зв'язку.Я не знаю, що CPLD продавця ви використовуєте, але, можливо, у вас є спеціальне завдання для зворотного зв'язку.

Я не верю, что что-то делать с CPLD обмеження ваших PS, але ви можете спробувати це розірвати петлю зворотнього
зв'язку із синхронізації Ваших elevator_travel процесу (може бути, ви пробували це уже).

Я не можу згадати, що я використав такий зворотнього
зв'язку (без урахування регістру в циклі),
тому я боюсь, я не можу допомогти Вам.

Успіх, Devas

 
Здравствуйте!

Devas Спасибо за ответ, дійсно appriciate його.

CPLD Я використовую це Xilinx XC9572.Я переглянув багато прикладів кодів, але не один, як зробити те, що мені потрібно зробити (застосувати бітні операції по ініціалізований внутрішнього сигналу і виведення його).

Синтаксис для замикання на цей же eveywhere ..

З повагою, Томас

 
Може бути, кто-то там з деякими корисними порадами?

 

Welcome to EDABoard.com

Sponsor

Back
Top