Problémy s VHDL odčítání

V

venkyatit

Guest
Zde je problém s bližší informace:
CounterA a CounterB jsou dvě celá čísla nakonfigurována tak, aby spočítat různé šířky impulsů.
Potřebuji generovat 2 šířky impulsů z A a B taková, že
vysledek = CounterA CounterB;
result1 = CounterA - CounterB;

Kromě toho dává správný výsledek vzhledem k tomu, odčítání není.
Odčítání pracuje vždy když CounterA> CounterB tj. (result1 = CounterA - CounterB;)
Nicméně když CounterB> CounterA výsledek je vždy 0 namísto záporné číslo.
Snažil jsem se pomocí proměnných podepsal taky, ale ono didnt práce.
Může any1 dejte mi vědět, jak tento problém vyřešit.

Níže naleznete kód:

konstantní Počet: integer: = 255;
podtyp Count_range je integer rozmezí 0 až hrabě;
signál CounterA: Count_range;
signál CounterB: Count_range;
signál CounterAdd: Count_range;
signál CounterSubtract: Count_range;

CounterAdd <= ((CounterA) (CounterB));
CounterSubtract <= ((CounterA) - (CounterB));

 
Ahoj,

Ty limit hodnotu CounterAdd a CounterSubtract být mezi 0 a 255 (podtypu Count_range).Takže si forbit záporných hodnot.Můžete také dostat hodnoty nad 255, např..CounterA = 254 a CounterB = 4 nefunguje.

Devas

 

Welcome to EDABoard.com

Sponsor

Back
Top