9 bit ramp alon

A

anu nair

Guest
Hi mga kaibigan

Iam paggawa ng aking mga proyekto sa FPGA at ang codings ay dapat nakasulat sa VHDL.
Ngayon iam nangangailangan ng codings para sa isang ramp alon ng 9bit.
kahit sino plz tumulong.

tungkol sa anu

 
anu nair wrote:

Hi mga kaibiganIam paggawa ng aking mga proyekto sa FPGA at ang codings ay dapat nakasulat sa VHDL.

Ngayon iam nangangailangan ng codings para sa isang ramp alon ng 9bit.

kahit sino plz tumulong.tungkol sa anu
 
Ramp na alon?Kung nais mong lumikha ng isang analog waveform ngipin ng lagari, maaari mong orasan ng isang simpleng 9-bit up-counter sa iyong FPGA, at output ang halaga nito sa isang panlabas na 9-bit digital-to-analog converter-.O maaari kang bumuo ng isang 9-bit tumibok-width moduleitor, at output nito pulso, kasama ang isang reset, sa isang panlabas na analog integrator.

 
OK ang nakuha ko ito!
Narito ang kung ano anu naghahanap!
Ang tatlong bahagi induction motor magsusupil!
Code:- 3Phase pagtatalaga sa tungkulin Motor Controler II --

library IEEE;

gamitin IEEE.STD_LOGIC_1164.ALL;

gamitin IEEE.STD_LOGIC_arith.ALL;

entidad inv3pa ay Port (speed_clk, vector_clk, inhibit_sw, over_current: sa std_logic;

port_U, port_V, port_W, port_IU, port_IV, port_IW, na humantong: out std_logic);

dulo inv3pa;

architecture RTL ng inv3pa ay

- 6step inverter

hudyat ng hex: integer saklaw 0-5;

signal cstep: integer saklaw 0-4;

- vector counter

signal vector: integer saklaw 0-30;

signal vecshot: std_logic_vector (1 downto 0);

signal vector_reset: std_logic;

- vectors

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

signal UD, Ano, WD: std_logic;

signal U, V, W: std_logic;

- Control

signal over_current_flag: std_logic;

simulan

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

- Genarate hex (6STEP INVERTER HAKBANG na halaga) at cstep (delta HAKBANG halaga)

proseso (speed_clk)

simulan

kung (speed_clk'event at speed_clk = '1 ') at pagkatapos ay

kung (hex = 5 at cstep = 4) at pagkatapos ay

hex <= 0;

cstep <= 0;

elsif (cstep = 4) at pagkatapos ay

cstep <= 0;

hex <= hex 1;

kung hindi

cstep <= cstep 1;

kung ang dulo;

kung ang dulo;

dulo proseso;

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

- Genarate vector freerun counter

proseso (vector_clk, vector_reset, vector)

simulan

kung (vector_clk'event at vector_clk = '1 ') at pagkatapos ay

kung (vector <30) pagkatapos ay

vector <= vector 1;

kung hindi

vector <= 0;

kung ang dulo;

kung ang dulo;

dulo proseso;

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

- I-reset ang circuit (isang shot) ng vector counter

- I-reset sa speed_clk tumaas gilid.

proseso (vector_clk, speed_clk)

simulan

kung (vector_clk'event at vector_clk = '1 ') at pagkatapos ay

vector_reset <= vecshot (0) at (hindi vecshot (1));

vecshot (1) <= vecshot (0);

vecshot (0) <= speed_clk;

kung ang dulo;

dulo proseso;

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

- genarate vectors

proseso (vector_clk, cstep, vector)

simulan

kung (cstep = 0) pagkatapos ay

kung (vector <= 3) pagkatapos ay

vector_x <= '1 ';

kung hindi

vector_x <= '0 ';

kung ang dulo;

kung (vector <= 24) at pagkatapos ay

vector_y <= '1 ';

kung hindi

vector_y <= '0 ';

kung ang dulo;

kung ((30-vector)> = 3) pagkatapos ay

ivector_x <= '1 ';

kung hindi

ivector_x <= '0 ';

kung ang dulo;

kung ((30-vector)> = 24) at pagkatapos ay

ivector_y <= '1 ';

kung hindi

ivector_y <= '0 ';

kung ang dulo;

kung ang dulo;

kung (cstep = 1) pagkatapos ay

kung (vector <= 8) pagkatapos ay

vector_x <= '1 ';

kung hindi

vector_x <= '0 ';

kung ang dulo;

kung (vector <= 25) at pagkatapos ay

vector_y <= '1 ';

kung hindi

vector_y <= '0 ';

kung ang dulo;

kung ((30-vector)> = 8) pagkatapos ay

ivector_x <= '1 ';

kung hindi

ivector_x <= '0 ';

kung ang dulo;

kung ((30-vector)> = 25) at pagkatapos ay

ivector_y <= '1 ';

kung hindi

ivector_y <= '0 ';

kung ang dulo;

kung ang dulo;

kung (cstep = 2) pagkatapos ay

kung (vector <= 13) at pagkatapos ay

vector_x <= '1 ';

kung hindi

vector_x <= '0 ';

kung ang dulo;

kung (vector <= 26) at pagkatapos ay

vector_y <= '1 ';

kung hindi

vector_y <= '0 ';

kung ang dulo;

kung ((30-vector)> = 13) at pagkatapos ay

ivector_x <= '1 ';

kung hindi

ivector_x <= '0 ';

kung ang dulo;

kung ((30-vector)> = 26) at pagkatapos ay

ivector_y <= '1 ';

kung hindi

ivector_y <= '0 ';

kung ang dulo;

kung ang dulo;

kung (cstep = 3) pagkatapos ay

kung (vector <= 17) at pagkatapos ay

vector_x <= '1 ';

kung hindi

vector_x <= '0 ';

kung ang dulo;

kung (vector <= 25) at pagkatapos ay

vector_y <= '1 ';

kung hindi

vector_y <= '0 ';

kung ang dulo;

kung ((30-vector)> = 17) at pagkatapos ay

ivector_x <= '1 ';

kung hindi

ivector_x <= '0 ';

kung ang dulo;

kung ((30-vector)> = 25) at pagkatapos ay

ivector_y <= '1 ';

kung hindi

ivector_y <= '0 ';

kung ang dulo;

kung ang dulo;

kung (cstep = 4) at pagkatapos ay

kung (vector <= 21) at pagkatapos ay

vector_x <= '1 ';

kung hindi

vector_x <= '0 ';

kung ang dulo;

kung (vector <= 24) at pagkatapos ay

vector_y <= '1 ';

kung hindi

vector_y <= '0 ';

kung ang dulo;

kung ((30-vector)> = 21) at pagkatapos ay

ivector_x <= '1 ';

kung hindi

ivector_x <= '0 ';

kung ang dulo;

kung ((30-vector)> = 24) at pagkatapos ay

ivector_y <= '1 ';

kung hindi

ivector_y <= '0 ';

kung ang dulo;

kung ang dulo;

dulo proseso;

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

- output vector para sa 6step inverter

proseso (vector_clk, vector, hex, vector_x, vector_y, ivector_y, ivector_x)

simulan

kung (vector <= 26) at pagkatapos ay

vector_z <= '1 ';

kung hindi

vector_z <= '0 ';

kung ang dulo;

kung (hex = 0) pagkatapos ay

U <= vector_x;

V <= '0 ';

W <= vector_y;

elsif (hex = 1) pagkatapos ay

U <= vector_z;

V <= ivector_y;

W <= ivector_x;

elsif (hex = 2) pagkatapos ay

U <= vector_y;

V <= vector_x;

W <= '0 ';

elsif (hex = 3) pagkatapos ay

U <= ivector_x;

V <= vector_z;

W <= ivector_y;

elsif (hex = 4) at pagkatapos ay

U <= '0 ';

V <= vector_y;

W <= vector_x;

kung hindi

U <= ivector_y;

V <= ivector_x;

W <= vector_z;

kung ang dulo;

dulo proseso;

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

- Patay Time Genarate ng itaas at mas mababa panig.

- At inhibit_sw.
, higit sa kasalukuyang pamamahala.

- Patay Time Genarate

proseso (vector_clk)

simulan

kung (vector_clk'event at vector_clk = '1 ') at pagkatapos ay

UD <= U;

Ano <= V;

WD <= W;

kung ang dulo;

dulo proseso;

- Higit sa kasalukuyang lach

- I-reset ang lach sa lamang ng kapangyarihan sa muli.

proseso (over_current)

simulan

kung over_current = '1 'at pagkatapos

over_current_flag <= '1 ';

humantong <= '1 ';

kung ang dulo;

dulo proseso;

- Output control

port_U <= (U at UD) at inhibit_sw at hindi over_current_flag;

port_IU <= (hindi (U o UD)) at inhibit_sw at hindi over_current_flag;

port_V <= (V at Ano) at inhibit_sw at hindi over_current_flag;

port_IV <= (hindi (o V Ano)) at inhibit_sw at hindi over_current_flag;

port_W <= (W at WD) at inhibit_sw at hindi over_current_flag;

port_IW <= (hindi (W o WD)) at inhibit_sw at hindi over_current_flag;

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

dulo RTL;
 

Welcome to EDABoard.com

Sponsor

Back
Top