ng tulong, pangunahing vhdl estado makina na may koneksyon 2

N

nicklas_a74

Guest
Hi
Ako ay may nakasulat na ang VHDL code sa ibaba.Ang binabalak na gamitin ay upang magkaroon ng isang estado machine.
na nagsimula mula sa 0.Kailan ko bang gamitin ang switch at ang operator ng ito ay dapat na ang mga tindahan ng lumipat
halaga at ang operator at pumunta sa estado 1.Pagkatapos, kung ako pindutin pantay na ito ay dapat na tindahan ng isang bagong
lumipat na halaga at depende sa operator kung saan ako ay may ginagamit na kalkulahin resulta
atbpNgunit kapag ako tumakbo ito sa aking koneksyon 2 board ito doest magtrabaho bilang inilaan.
Please help me sa mga iminungkahing Corrections sa code sa ibaba.

proseso (estado, operand, pantay-pantay, lumipat, clk)
variable tal1, tal2: std_logic_vector (7 downto 0);
variable na resulta: std_logic_vector (15 downto 0);
variable temp_operand: std_logic_vector (2 downto 0);

simulan

kung rising_edge (clk) pagkatapos ay

kaso ng estado ay

kapag s0 => kung operand / = "000" at pagkatapos ay
temp_operand: = operand;
dispx (7 downto 0) <= lumipat (7 downto 0);
dispx (15 downto 8) <= "11101110";
tal1: = lumipat (7 downto 0);
estado <= s1;

kung hindi
dispx (7 downto 0) <= lumipat (7 downto 0);
dispx (15 downto 8) <= "11101110";
dulo kung;

kapag s1 => kung pantay ='1 'at pagkatapos ay
tal2: = lumipat (7 downto 0);

kaso temp_operand ay

kung "100" => resulta: = ( "00000000" & tal1) tal2;
dispx <= resulta;
estado <= s2;

kapag "010" => resulta: = ( "00000000" & tal1)-tal2;
dispx <= resulta;
estado <= s2;

kapag ang iba => resulta: = tal1 * tal2;
dispx <= resulta;
estado <= s2;
dulo kaso;

kung hindi
dispx (7 downto 0) <= lumipat (7 downto 0);
dispx (15 downto 8) <= "11101110";
dulo kung;kapag s2 => kung lumipat / = tal2 pagkatapos
estado <= s0;
kung hindi
estado <= s2;
dispx <= resulta;
dulo kung;

kapag ang iba => estado <= s0;
dulo kaso;
dulo kung;
dulo proseso;

 
HI,

Para sa anumang at lahat ng mga digital na disenyo sa unang sulyap ito
doesnt trabaho kaysa sa kailangan mong i-check para sa kapangyarihan, kung board ang makakakuha ng maayos na kapangyarihan up at ang kapangyarihan ng maayos ipinamamahagi sa lahat ng comaponant?

Kung ito ay ok at pagkatapos ay i-check para sa clk at i-reset.kung ang iyong disenyo ng nakukuha clk at i-reset nang maayos?

suriin ito sa pamamagitan ng pagtatalaga ng clk at i-reset sa humantong o gpio (sa kaso ng gpio check sa CRO o gumawa ng humantong mechenism o anumang bagay sino pa ang paririto kahit na ano sa tingin mo ay mas mabuti).

kung ito rin ay darating na maayos pagkatapos ay mayroong problema sa iyong disenyo ng code.

upang i-tsek kung saan ang problema sa estado machine .....
Unang bagay na kailangan mong mag-ingat ang tungkol sa puno na at kahilera kaso ng estado ment.ay diyan d buong kaso?at ito ay may defaul kaso?ang mga ito ay kailangan upang maiwasan ang mula sa tarangkahan at undesired estado.

pa rin ang problema ay diyan pagkatapos ay kailangan mong gayahin at debug na paraan.alagaan tungkol sa kapanggapan at synthesis misbihavior

HTH,
--
Shitansh Vaghela

 
Salamat sa pagtugon
Ako ay may kapangyarihan at pagayon dahil sa ang aking code ay tumatakbo ngunit hindi maayos.Ako ay naniniwala na ito ay
sa loob ng estado paglalarawan ang problema ay.Hindi ko magamit ang anumang magalit, dahil ang aking code
dapat alagaan ng "hindi-ginustong" estado at "pipitsugin" ito na ang estado s0 bilang isang simula
estado.Ngunit hindi ko "makita" kung saan ang problema lies sa loob ng code na ako ay may nakasulat na.

Ito ang dahilan kung bakit ko tinatanong para sa mga tiyak na mga komento tungkol sa aking code.

 
HI,

sa kasamaang-palad ako ay walang karanasan sa VHDL na kung bakit ako may direksyon na ibinigay sa iyo.kung ito ay sa verilog pagkatapos ay perheps ako ay maaaring makatulong sa iyo.

Kung sa pamamagitan ng converter ka maaari magpadala ako ng code sa Verilog at pagkatapos ay ako ay makita ito.rightnow Medyo busy pa ang ako ay mayroon na ito.Added matapos 6 minuto:Ibang suggetion,

Subukan na gumawa nang inyong FSM na may dalawang bloke ng isa para sa nanggagalaing at iba pang para sa combinational at din meke hiwalay na block para sa logik output sa ganitong paraan ka makakapag-debug ito ang higit pa.

HTH
--
Shitansh Vaghela

 
Tingnan ang isang ito!

Code:

proseso (clk)

variable tal1, tal2: std_logic_vector (7 downto 0);

variable na resulta: std_logic_vector (15 downto 0);

variable temp_operand: std_logic_vector (2 downto 0);

simulankung rising_edge (clk) pagkatapos ay

kaso ng estado ay

kapag s0 =>

kung operand / = "000" at pagkatapos ay

temp_operand: = operand;

dispx (7 downto 0) <= lumipat (7 downto 0);

dispx (15 downto 8) <= "11101110";

tal1: = lumipat (7 downto 0);

estado <= s1;

kung hindi

dispx (7 downto 0) <= lumipat (7 downto 0);

dispx (15 downto 8) <= "11101110";

dulo kung;kapag s1 =>

kung pantay na ='1 'at pagkatapos ay

tal2: = lumipat (7 downto 0);

kaso temp_operand ay

kung "100" =>

resulta: = ( "00000000" & tal1) tal2;

kapag "010" =>

resulta: = ( "00000000" & tal1) - tal2;

kapag ang iba =>

resulta: = tal1 * tal2;

dulo kaso;

dispx <= resulta;

estado <= s2;

kung hindi

dispx (7 downto 0) <= lumipat (7 downto 0);

dispx (15 downto 8) <= "11101110";

dulo kung;kapag s2 =>

kung lumipat / = tal2 pagkatapos

estado <= s0;

kung hindi

estado <= s2;

dispx <= resulta;

dulo kung;kapag ang iba =>

estado <= s0;

dulo kaso;

dulo kung;

dulo proseso;
 
Ang code pa Dont trabaho kapag ako ay nag-transfer nito bitfile sa koneksyon 2 board.Ang pindutan ay konektado sa mga pindutan ng B18, D18 at ma-enable ang E18 na pumili , - o * bilang operand.Ang pantay-pantay dapat ang pindutan H13 sa board.Ang display na nagpapakita ng mga halaga mula sa switch G18 sa R17, tama.Ngunit matapos kong sabihin ang pindutin ang " " at pagkatapos noon ay nagbibigay ng pangalawang numero at pindutin ang pindutan para sa "pantay" na ito dosent trabaho.Ito dosent ipakita ang halaga.Cant "makita" whats sira ang code?
Anumang mga karagdagang mungkahi?

 
Ang problema ay maaaring ...
Ikaw ay gamit ang mga pindutan ng itulak B18, D18 at E18 na walang debouncing.
Checkout ito ...
http://www.fpga4fun.com/Debouncer2.html

Hope this helps!

 

Welcome to EDABoard.com

Sponsor

Back
Top