CPLD XC9572 loopback signaal operaties - geen resultaten

T

thtasuja

Guest
Hallo vrienden,
Ik heb een vreemd probleem heb ik bezig voor weken.Misschien kun je me helpen uit deze.
Ik heb een machine met interne toestand (geïnitialiseerd interne signaal).Ik strippen het ontwerp voor eenvoud.Zij moeten kunnen bitwise en de interne signaal en de output is.Maar met het ISE synthese UITSLAG uit.Ik heb al geprobeerd andere operatoren ook van toepassing op mijn 'result_internal' ( 'result_internal: ='1' & 'result_internal (5 downto 2); - voor de juiste ploeg), maar niets lijkt toi werkt correct.
Echter,
de status signaal 'status_internal' maakt output LED knipperen zoals verwacht.Ja, waar kan het probleem in deze code?

Met vriendelijke groet, Thomas

Code:- klok: 2 kHzLIBRARY IEEE;

GEBRUIK ieee.std_logic_1164.ALL;

gebruik IEEE.numeric_std.ALL;entiteit machine

generieke (NUM_OF_LEVELS: positief: = 5);poort (

clk: in bit;

RESULTAAT: Out bit_vector (NUM_OF_LEVELS downto 1);

STATUS_LEDS: Out bit_vector (1 downto 0)

);

einde machine;
MODEL architectuur van de machine is

signaal change_sensed: bit;

signaal result_internal: bit_vector (NUM_OF_LEVELS downto 1): = "10101";

signaal status_internal: bit_vector (1 downto 0): = "00";beginnen

UITSLAG <= result_internal;

STATUS_LEDS <= status_internal;---------------- devide 2kHz te 0.5Hz----------------------

proces (clk)variabele count: integer bereik 0 tot 1000;beginnen

indien clk'event en clk ='1 ', dan

indien tellen <1000 vervolgens

count: = count 1;

anders

count: = 0;

change_sensed <= niet change_sensed;

end if;

end if;

einde proces;---------------- berekenen output resultaten ----------------------

elevator_travel: proces (change_sensed)beginnenresult_internal <= result_internal EN "11100"; - EN operandlengte

status_internal (0) <= change_sensed;einde proces;end model;

 
Hoi,

Ik denk niet dat ik begrijp wat je wilt maken als je signaal result_internal komt slechts een keer een waarde toegewezen, zodat de output resultaat krijgt ook slechts een keer een waarde van:

result_signals <= result_signals EN "11100";

t0: 10101 EN 11100 = 10100
T1: 10100 EN 11100 = 10100
t2-TN 10100 EN 11100 = 10100

Deva

 
Hallo!

dank u voor een snel antwoord!
Uw opmerking is volkomen juist.In het oorspronkelijke project is er een meer complexe state machine, maar als bit operaties werkte niet (AND, OR, shift etc) voor bit arrays, besloot ik te strippen het ontwerp voor dit forum.

Zoals u heeft geschreven, moet geven "10100" als resultaat, maar in de echte setup geeft "00000" op de uitgang.Dus, se mis met de AND operatie.(zonder deze en daarin geeft "10.101" - geïnitialiseerd signaal, aangezien de juiste).

PS: iemand vertelde me dat het kan te wijten zijn aan beperkingen die CPLD kan niet 5-bits bitwise operaties.Maar ik kan dit niet geloven.

Met vriendelijke groet, Thomas

 
Hoi Thomas,

Oke, ik begrijp het (een gemeenschappelijk probleem wanneer je je code strippen).

Ik denk dat het iets te maken heeft met de feedback loop.Ik weet niet wat CPLD verkoper die u gebruikt, maar misschien heb je een speciale opdracht voor de terugkoppelcircuit.

Ik geloof niet dat het iets te maken heeft met de CPLD beperkingen van uw PS, maar u kunt dit proberen door te breken met de feedback lus door het synchroniseren van uw elevator_travel proces (misschien heb je dit al geprobeerd).

Ik kan me niet herinneren dat ik heb gebruikt deze terugkoppelcircuit (zonder een register in de loop) dus ik ben bang dat ik niet kan helpen u graag verder.

Succes, deva

 
Hallo!

Dank u voor het antwoord deva, echt appriciate is.

CPLD ik gebruik is Xilinx XC9572.Ik heb via vele voorbeeld codes maar niemand lijkt te doen wat ik moet doen (toepassing bit operaties op geïnitialiseerd interne signaal-en output-IT).

Syntax voor het loopback is dezelfde eveywhere ..

Met vriendelijke groet, Thomas

 

Welcome to EDABoard.com

Sponsor

Back
Top