9 bittinen asematasotarkastuksia aalto

A

anu Na

Guest
Hei ystävät

IAM tekee minun hankkeen FPGA ja koodit on kirjoitettu VHDL.
Nyt IAM tarvitsevat koodit varten asematasotarkastuksen aallon 9bit.
plz kenenkään apua.

osalta anu

 
anu Naïr wrote:

Hei ystävätIAM tekee minun hankkeen FPGA ja koodit on kirjoitettu VHDL.

Nyt IAM tarvitsevat koodit varten asematasotarkastuksen aallon 9bit.

plz kenenkään apua.osalta anu
 
Ramp aalto?Jos haluat luoda analoginen sawtooth aaltomuodossa, voit kello yksinkertainen 9-bittinen ylös-counter teidän FPGA, ja tuotannon arvo jonkin ulkoisen 9-bittinen digitaalinen-analoginen-muunnin.Tai voit rakentaa 9-bittinen pulssi-leveys-modulaattorin, ja tuotos sen pulssin yhdessä nollauspainike, jonkin ulkoisen analogisen integraattori.

 
OK, I got it!
Tässä on mitä anu HAKU!
A kolmivaiheiset induktiomoottori valvoja!
Code:- 3Phase Induction Motor Controler II --

kirjasto IEEE;

käyttää IEEE.STD_LOGIC_1164.ALL;

käyttää IEEE.STD_LOGIC_arith.ALL;

yksikkö inv3pa on Port (speed_clk, vector_clk, inhibit_sw, over_current: vuonna std_logic;

port_U, port_V, port_W, port_IU, port_IV, port_IW johtanut: Out std_logic);

loppuun inv3pa;

arkkitehtuuri RTL on inv3pa on

- 6step inverter

signaali hex: integer erilaisia 0-5;

signaali cstep: integer erilaisia 0-4;

- vektorin counter

signaalin vektori: integer erilaisia 0-30;

signaali vecshot: std_logic_vector (1 downto 0);

signaali vector_reset: std_logic;

- vektorien

signaali vector_x, vector_y, ivector_x, ivector_y, vector_z: std_logic;

signaali UD, VD, WD: std_logic;

signaali U, V, W: std_logic;

- Valvonta

signaali over_current_flag: std_logic;

aloittaa

-------------------------------------------------- -------------------

- Genarate hex (6STEP Inverter VAIHE arvo) ja cstep (delta VAIHE arvo)

prosessi (speed_clk)

aloittaa

if (speed_clk'event ja speed_clk ='1 ') sitten

if (hex = 5 ja cstep = 4) sitten

hex <= 0;

cstep <= 0;

elsif (cstep = 4) sitten

cstep <= 0;

hex <= hex 1;

muuten

cstep <= cstep 1;

end if;

end if;

Lopeta prosessi;

-------------------------------------------------- --------------------

- Genarate vektorin freerun counter

prosessi (vector_clk, vector_reset, vektori)

aloittaa

if (vector_clk'event ja vector_clk ='1 ') sitten

if (vektori <30) sitten

vector <= vektori 1;

muuten

vector <= 0;

end if;

end if;

Lopeta prosessi;

-------------------------------------------------- --------------------

- Palauta piiri (yksi laukaus) ja vektorin counter

- Palauta klo speed_clk nousta reunasta.

prosessi (vector_clk, speed_clk)

aloittaa

if (vector_clk'event ja vector_clk ='1 ') sitten

vector_reset <= vecshot (0) ja (ei vecshot (1));

vecshot (1) <= vecshot (0);

vecshot (0) <= speed_clk;

end if;

Lopeta prosessi;

-------------------------------------------------- --------------------

- genarate vektorit

prosessi (vector_clk, cstep, vektori)

aloittaa

if (cstep = 0) sitten

if (vektori <= 3) sitten

vector_x <='1 ';

muuten

vector_x <='0 ';

end if;

if (vektori <= 24) sitten

vector_y <='1 ';

muuten

vector_y <='0 ';

end if;

jos ((30-vektori)> = 3) sitten

ivector_x <='1 ';

muuten

ivector_x <='0 ';

end if;

jos ((30-vektori)> = 24) sitten

ivector_y <='1 ';

muuten

ivector_y <='0 ';

end if;

end if;

if (cstep = 1) sitten

if (vektori <= 8) sitten

vector_x <='1 ';

muuten

vector_x <='0 ';

end if;

if (vektori <= 25) sitten

vector_y <='1 ';

muuten

vector_y <='0 ';

end if;

jos ((30-vektori)> = 8) sitten

ivector_x <='1 ';

muuten

ivector_x <='0 ';

end if;

jos ((30-vektori)> = 25) sitten

ivector_y <='1 ';

muuten

ivector_y <='0 ';

end if;

end if;

if (cstep = 2) sitten

if (vektori <= 13) sitten

vector_x <='1 ';

muuten

vector_x <='0 ';

end if;

if (vektori <= 26) sitten

vector_y <='1 ';

muuten

vector_y <='0 ';

end if;

jos ((30-vektori)> = 13) sitten

ivector_x <='1 ';

muuten

ivector_x <='0 ';

end if;

jos ((30-vektori)> = 26) sitten

ivector_y <='1 ';

muuten

ivector_y <='0 ';

end if;

end if;

if (cstep = 3) sitten

if (vektori <= 17) sitten

vector_x <='1 ';

muuten

vector_x <='0 ';

end if;

if (vektori <= 25) sitten

vector_y <='1 ';

muuten

vector_y <='0 ';

end if;

jos ((30-vektori)> = 17) sitten

ivector_x <='1 ';

muuten

ivector_x <='0 ';

end if;

jos ((30-vektori)> = 25) sitten

ivector_y <='1 ';

muuten

ivector_y <='0 ';

end if;

end if;

if (cstep = 4) sitten

if (vektori <= 21) sitten

vector_x <='1 ';

muuten

vector_x <='0 ';

end if;

if (vektori <= 24) sitten

vector_y <='1 ';

muuten

vector_y <='0 ';

end if;

jos ((30-vektori)> = 21) sitten

ivector_x <='1 ';

muuten

ivector_x <='0 ';

end if;

jos ((30-vektori)> = 24) sitten

ivector_y <='1 ';

muuten

ivector_y <='0 ';

end if;

end if;

Lopeta prosessi;

-------------------------------------------------- --------------------

- tuotos levittämisessä 6step inverter

prosessi (vector_clk, vektorikuvituksia, hex, vector_x, vector_y, ivector_y, ivector_x)

aloittaa

if (vektori <= 26) sitten

vector_z <='1 ';

muuten

vector_z <='0 ';

end if;

if (hex = 0) sitten

U <= vector_x;

V <='0 ';

W <= vector_y;

elsif (hex = 1) sitten

U <= vector_z;

V <= ivector_y;

W <= ivector_x;

elsif (hex = 2) sitten

U <= vector_y;

V <= vector_x;

W <='0 ';

elsif (hex = 3) sitten

U <= ivector_x;

V <= vector_z;

W <= ivector_y;

elsif (hex = 4) sitten

U <='0 ';

V <= vector_y;

W <= vector_x;

muuten

U <= ivector_y;

V <= ivector_x;

W <= vector_z;

end if;

Lopeta prosessi;

-------------------------------------------------- ---------------------------------

- Dead Aika Genarate Ylemmän ja alemman puolella.

- Ja inhibit_sw.
yli nykyinen valvonta.

- Dead Aika Genarate

prosessi (vector_clk)

aloittaa

if (vector_clk'event ja vector_clk ='1 ') sitten

UD <= U;

VD <= V;

WD <= W;

end if;

Lopeta prosessi;

- Yli nykyisen lach

- Palauta lach vain virta uudelleen.

prosessi (over_current)

aloittaa

jos over_current = "1" sitten

over_current_flag <='1 ';

johtanut <='1 ';

end if;

Lopeta prosessi;

- Tuotos-valvonta

port_U <= (U ja UD) ja inhibit_sw eikä over_current_flag;

port_IU <= (ei (U tai UD)) ja inhibit_sw eikä over_current_flag;

port_V <= (V ja VD) ja inhibit_sw eikä over_current_flag;

port_IV <= (ei (V tai VD)) ja inhibit_sw eikä over_current_flag;

port_W <= (W ja WD) ja inhibit_sw eikä over_current_flag;

port_IW <= (ei (W tai WD)) ja inhibit_sw eikä over_current_flag;

-------------------------------------------------- ---------------------------------

loppuun RTL;
 

Welcome to EDABoard.com

Sponsor

Back
Top