CPLD PWM Problem

K

Kviks

Guest
Hej!
Jeg er en nybegynder på Texas 9.500 serien CPLDs hjælp Webpack 5.2.Jeg skrev den vedhæftede fil som en PWM komparator / generator med input låsen.Problemet er, at når jeg syntetisere det får jeg en advarsel: fundet 1 bit latch for signal PWM.Også når jeg kører installatør rapport, jeg får en "rød X" til venstre på "installatøren rapport".Så jeg vil gerne vide, hvad jeg gør forkert.

Lad mig forklare lidt mere PWM komparator.I Cin input jeg vil bringe en 8 bit counter output, og ved Din de 8 bit PWM værdi.Konceptet er som følger:
- Et alternativt sæt PWM output, når Cin når toppen (255).
- PWM output er indfriet, da Din (eller lukket, signal data) er lig Cin.Dette er mere eller mindre det.

Jeg takker på forhånd for svaret.

Venlig hilsen
George MercuryUndskyld, har jeg forsøgt at vedhæfte filen, men jeg har haft nogen succes:

library IEEE;
brug IEEE.STD_LOGIC_1164.ALL;
brug IEEE.STD_LOGIC_ARITH.ALL;
brug IEEE.STD_LOGIC_UNSIGNED.ALL;enhed Comparator er
Port (
PWM: out std_logic;
str.: i std_logic;
RST: i std_logic;

DIN: i std_logic_vector (7 downto 0);
Cin: i std_logic_vector (7 downto 0)

);
ende Comparator;

arkitektur comp af Comparator er

signal data: std_logic_vector (7 downto 0);
signal top: std_logic;
signal EQU: std_logic;

begynd

P00: proces (str)
begynd
hvis str'event og str = '1 'og derefter
data <= Din;
end if;
end process;p01: proces (top, EQU, rst)
begynd
hvis rst = '0 'så
PWM <= '0 ';
elsif top = '1 'så
PWM <= '1 ';
elsif EQU = '1 'så
PWM <= '0 ';
end if;
end process;

EQU <= '1 ', når data = Cin else '0';
top <= '1 ', når Cin = "11.111.111" else '0';

ende comp;

 
den kode, du viser, er et kombinatorisk en og låse vil blive infered for de sager, der dos ikke er omfattet af P01 proces.Mit råd er som følger

1 - Tag Ur, som tælleren tæller med som et input til dit design.
2 - Lav en proces, der aktiveres, hver stigende kanten af klokken og omfattende indenfor denne proces værdien af Cin og data direkte (dvs. hvis Cin = Data) og efter den nulstille sæt eller rydde PWM output.denne måde kan du undgå de farer accosiated med multikombinerbare logik, og du vil undgå infered låse.

hilsen

 
Jeg takker Dem for Deres svar.Så hvis jeg har forstået det ret, min fejl var, at jeg did't give staterne for PWM output, når ikke af hvis-klausuler var sandt.Og som jeg ser det, VHDL brugt låsen til PWM output.Har jeg ret?Jeg vil tage dit råd og bruge uret.Jeg takker igen for dit hurtige svar.

Geroge

 
1 - holde i dit sind, at der for alle unsepecified sag (enten i din situation, eller i tilfælde erklæring) låsene vil blive iferred at holde det aktuelle output.

2 - Når du laver de begivenheder, udført på den stigende (eller falde) med kaptajnen ur, denne erklæring er syntetiseret i DFF's drived af multikombinerbare logik, så produktionen af multikombinerbare logik dos ikke ses før kanten af uret ankom der undgår følgende kredsløb at blive påvirket med de farer, at mit møde på multikombinerbare kredsløb i løbet af overgange i sit input.

 

Welcome to EDABoard.com

Sponsor

Back
Top