Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Este Calm Down melodia care place...

Auto 4000/4500 euro

100%packets lost pe Laptop dar nu...

Receptie AM doar pe jumatate din ...
 Inapoi in tara - in ce oras sa ma...

Care este cea mai calitativa tabl...

Laptop Dell sau recomandare Lapto...

M.Zuiko Digital 90mm F/3.5 macro
 Tehnologia DSL la Orange?

conectare navigație auto la ...

Care e pretul corect pe mp?!

Auto 200-250km/zi autostrada, fia...
 Idei noi? Ce verificam la o masin...

Încarcare acumulatori LiPo de 1,5v...

cel mai ieftin generator trifazic

cum il cheama pe acest SSD?
 

Indicatii referitoare la programarea FPGA.(FSM)

- - - - -
  • Please log in to reply
No replies to this topic

#1
csimu

csimu

    New Member

  • Grup: Members
  • Posts: 4
  • Înscris: 03.07.2010
Salutare, mi-am achizitionar recent un FPGA Spartan 3E-1600 de la Digilent si momentan nu am reusit sa comunic deloc cu ea. Lucrez in Xilinx ISE 11 in verilog si momentan am gasit un cod pe internet pentru un FSM dar nu stiu cu ce se manaca si ce ar trebui sa faca(nu prea le am cu HDL-urile).M-am oprit la el deoarece mi-a mers perfect pana la generarea fisierului .bit, am mai cautat programe dar aveam tot felul de warninguri sau errori. As dori daca stie cineva sa se uita peste cod si sa-mi spuna ce face sau ce ar trebuii sa faca, eu vreau sa-l descarc pe placa si sa comunic cu ea, pentru asta imi trebuie fisierul de constrangeri (UCF).

Acesta este codul FSM-ului.

module FSM_Example (
// Inputs:
Clock, // Master clock
Reset, // Master reset (active high)
A,
B,
C,
// Outputs:
D,
E,
F
);

// Port mode declarations:
// Inputs:
input Clock;
input Reset;
input A;
input B;
input C;

// Outputs:
output D;
output E;
output F;
// Registered identifiers:
// NOTE: Remove (or comment out) each line for which the 'assign' method is used
reg D;
reg E;
reg F;
// Functionality:
// Declare parameters to represent the state bit patterns
parameter s0 = 3'b000;
parameter s1 = 3'b001;
parameter s2 = 3'b010;
parameter s3 = 3'b011;
parameter s4 = 3'b100;

// Declare outputs of each circuit block
reg [2:0] State, NextState;


// State register
always @ (posedge Clock or posedge Reset)
if (Reset)
r$State <= p$s0;
else
State <= NextState;

// Output decoder
always @ (State) begin
D <= (State == s1 || State == s4);
E <= (State == s2);
F <= (State == s3);
end

// Next state decoder
always @ (State or A or B or C)
case (State)
s0: NextState <= (A) ? s4 : s1;
s1: NextState <= s2;
s2: NextState <= s3;
s3: if (B)
NextState <= © ? s4 : s0;
else
NextState <= s3;
s4: NextState <= s0;
default: NextState <= s0;
endcase
endmodule


Iar aici este codul pentru modulul de test.


module FSM_Example_TESTBENCH;
// Input stimulus:
reg Clock;
reg Reset;
reg A;
reg B;
reg C;
// Output connections:
wire D;
wire E;
wire F;
// Set the maximum number of characters in the statename string
parameter MaxChars = 4;
// Create the "StateName" identifier (must declare the total
// number of bits... eight bits per character)
reg [8*MaxChars-1 : 0] StateName;
//Instantiate the DUT (device under test):
FSM_Example DUT (
// Inputs:
.Clock ( Clock ),
     .Reset ( Reset ),
.A ( A ),
.B ( B ),
.C ( C ),

// Outputs:
.D ( D ),
.E ( E ),
.F ( F )
);
// Specify input stimulus:
initial begin
// Initial values for input stimulus:
Clock = 0;
Reset = 1;
A = 1'b0;
B = 1'b0;
C = 1'b0;
// Take out of reset
#10 Reset = 0;
// Wait until state s3, wait another
// period, then assert C
wait (DUT.State==DUT.s3) #10 C = 1;
// Deassert C
#10 C = 0;
// Assert B, then deassert
#10 B = 1;
#10 B = 0;
// Assert C
#10 C = 1;
// Wait until state s3, wait another
// period, then assert B
wait (DUT.State==DUT.s3) #10 B = 1;
// Wait until state s0 then stop
wait (DUT.State==DUT.s0) #10 $finish;
end
// Template for master clock. Uncomment and modify signal name as needed.
// Remember to set the initial value of 'Clock' in the 'initial' block above.
always #5 Clock = ~Clock;
// Create human-readable labels for current state
always @ (DUT.State)
case (DUT.State)
3'b000: StateName = "S0";
3'b001: StateName = "S1";
3'b010: StateName = "S2";
3'b011: StateName = "S3";
3'b100: StateName = "S4";
default:StateName = "??";
endcase
endmodule

am atasat ambele fisiere daca sunt doritori sa le incerce sa-mi lase un mesaj. Va multumesc

Attached Files

  • Attached File  fsm.rar   1.37K   1 downloads


Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate