Question about Stoplysmetode Controller Gennemførelse.

A

anushina

Guest
Hej,

Jeg har et spørgsmål om gennemførelsen af min 4-state lyssignalmetoden system (jeg har koden i VHDL).Jeg bruger Xilinx ISE Webpack 10.1 og jeg fik Spartan 3 XSA3S1000 Starter Kit bord.Jeg næsten ikke har nogen erfaring med det, kun afsluttet selvstudiet hidtil ...
Min VHDL-kode omfatter tælleren med nulstillet, FSM med 4 hedder .. når jeg går herfra, skal jeg oprette en skematisk eller der
er en måde at gennemføre koden direkte?
Tak
Ganna

Koden nedenfor:

library IEEE;
brug ieee.std_logic_1164.all;
brug ieee.std_logic_arith.all;
brug IEEE.std_logic_unsigned.all;

enhed TLC er
port (
CLK, nulstillet, sa, sb: i std_logic;
Ga, Ya, Ra, GB, yb, Rb: out std_logic
);
udgangen TLC;

architecture Behavioral af TLC er

type state_type er (a, b, c, d);
signal state_reg, state_next: state_type;
signal Pre_Q, Q: std_logic_vector (3 downto 0);
signal tælle, klar: std_logic: ='0 ';

begynd

- Problemet beskrive counter
processen (CLK, tælle, klare, reset)
begynd
if (reset ='0 ')
og derefter
Pre_Q <= "0000";
Q <= "0000";
anden
if (klar ='0 ')
og derefter
Pre_Q <= Pre_Q - Pre_Q;
elsif (CLK ='1 'og clk'event)
og derefter
if (count ='1 ')
og derefter
Pre_Q <= Pre_Q 1;
udgangen, hvis;
udgangen, hvis;
udgangen, hvis;
Q <= Pre_Q;
ende proces;- Statens register

processen (CLK, reset) begynder
if (reset ='0 ')
og derefter
state_reg <= a;
elsif (clk'event og CLK ='1 ')
og derefter
state_reg <= state_next;
udgangen, hvis;
ende proces;

- Næste tilstand logik
processen (state_reg, Q, sa, sb, reset) begynder

if (reset ='0 ')
og derefter
count <='0 ';
klar <='1 ';
udgangen, hvis;

tilfælde state_reg er
når a =>
if (sa ='1 'og sb ='0')
og derefter
state_next <= a;
count <='0 ';
elsif (sa ='0 'og sb ='1')
og derefter
count <='1 ';
if (Q = "0110")
og derefter
state_next <= b;
udgangen, hvis;
udgangen, hvis;

når b =>
if (Q = "0111")
og derefter
state_next <= c;
count <='0 ';
elsif (sa ='1 ')
og derefter
state_next <= b;
udgangen, hvis;

når c =>
if (sa ='0 'og sb ='1')
og derefter
state_next <= c;
elsif (sa ='1 'og sb ='0')
og derefter
klar <='0 ';
count <='1 ';
if (Q = "0110")
og derefter
state_next <= d;
udgangen, hvis;
udgangen, hvis;

når d =>
if (Q = "0111")
og derefter
state_next <= a;
count <='0 ';
elsif (sb ='1 ')
og derefter
state_next <= d;
udgangen, hvis;
ende sag;
ende proces;

processen (state_reg) begynder

Ga <='1 '; Ya <='0'; Ra <='0 ';
Gb <='0 '; yb <='0'; Rb <='1 ';

tilfælde state_reg er
når a =>
når b =>
Ga <='0 ';
Ya <='1 ';
når c =>
Ya <='0 ';
Ra <='1 ';
Gb <='1 ';

når d =>
Gb <='0 ';
Yb <='1 ';

ende sag;
ende proces;

udgangen Behavioral;

 
For en umiddelbar gennemførelse du i det mindste behov for at definere var signaler i virksomheden erklæring er tilsluttet hardwaren.
I dit projekt, med den øverste modul valgt, se under "User Begrænsninger 'og aktivere' Gulvplan IO - Pre-syntese.Dette giver dig mulighed for at definere var din hardware er tilsluttet (som pin af FPGA), og hvilken form for logik er anvendt (hver bank af I / O's kan have en anden Forsyningsspænding).

Hvis du allerede har en begrænsninger fil til dit bord (a. Ucf fil), så kan du tilføje denne kilde første til dit projekt (og eventuelt ændre det senere ved hjælp af 'Gulvplan IO ...).

Derefter kan du bruge 'Implementere Design "og / eller" Generer Programmering File' osv.

Typisk sådan kode er først "debugged 'med en prøvebænk og en simulator, og derefter rent faktisk gennemføres i hardware.

 

Welcome to EDABoard.com

Sponsor

Back
Top