Segnali e variabili x [Ping Pong]

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 18 Feb 2014, 22:06

Si Leonardo sei stato chiaro. La FSM di aggiornamento della posizione della pallina è molto simile al codice di aggiornamento dei pads. Ho provato ad inserire dei valori di default per le uscite di posizione della pallina ma dovrei fare qualcosa del tipo:
Code: Select all
x_Ball <= x_Ball;


per gli stati in cui non prevedo di aggiornare la posizione. Quest'istruzione ho capito che crea dei loop combinatori con risultati imprevedibili. Come posso fare altrimenti? Spero si capisca cosa intendo...

Inoltre ho notato che le simulazioni delle FSM non mi permettono di leggere un valore e scriverlo in due cicli di clock (e quindi due stati) adiacenti: è normale?
sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby deluca » 20 Feb 2014, 18:35

sgranfius
non mi è chiaro se hai già sintetizzato il progetto e provato su una piattaforma HW.
se si, su quale board stai sviluppando l'applicazione?
Hai una immagine/video che mostra il funzionamento del pong?

Ti mostro un pong che realizzai alcuni anni fa.
era basato su cyclone I montato su una semplice demo-baord della parallax.
Usai pure un atmega128 per caricare il background da una sd-card.
Nella demo si vede il pong che gioca da solo. Ovviamente è possibile giocarci in 2 o in uno contro l'FPGA :)
Il tutto senza macchina a stati, solo counters sincronizzati con la freq video VGA.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 21 Feb 2014, 10:10

Si ho già testato quanto fatto finora. Ho a disposizione una Cyclone montata su una DE1. Il problema l'ho parzialmente risolto parlando con il mio prof: il problema era che nella gestione della pallina aggiornavo la posizione nella parte combinatoria e non in quella sequenziale. Di conseguenza venivano generati dei latch invece di registri. Ora pare che funzioni, anche se la simulazione timing si blocca perché non trova un file di cui ora non ricordo esattamente l'estensione. Aggiornerò il post tra poco con uno screenshot del log di simulazione.
Ps. Veramente bello il tuo pong DeLuca, il risultato spero sarà quello anche per il mio :)
sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 21 Feb 2014, 14:13

Ragazzi questo è il log della simulazione timing... qualcuno sa interpretarlo?
Code: Select all
Device family: Cyclone II
Running quartus eda_testbench
>> quartus_eda --gen_testbench --check_outputs=on --tool=modelsim_oem --format=verilog Pong -c Pong {--vector_source=//vmware-host/Shared Folders/Scrivania/Pong/Test_Timings_InputManager.vwf} {--testbench_file=./simulation/qsim/Pong.vt}
PID = 2736
*******************************************************************
Running Quartus II 64-Bit EDA Netlist Writer
  Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition
  Processing started: Fri Feb 21 11:02:54 2014
Command: quartus_eda --gen_testbench --check_outputs=on --tool=modelsim_oem --format=verilog Pong -c Pong --vector_source="//vmware-host/Shared Folders/Scrivania/Pong/Test_Timings_InputManager.vwf" --testbench_file=./simulation/qsim/Pong.vt
Generated Verilog Test Bench File ./simulation/qsim/Pong.vt for simulation
Quartus II 64-Bit EDA Netlist Writer was successful. 0 errors, 0 warnings
  Peak virtual memory: 392 megabytes
  Processing ended: Fri Feb 21 11:02:56 2014
  Elapsed time: 00:00:02
  Total CPU time (on all processors): 00:00:01
Running quartus eda_timing_netlist
>> quartus_eda --functional=off --timescale=1ps --simulation --tool=modelsim_oem --format=verilog Pong -c Pong
PID = 3844
*******************************************************************
Running Quartus II 64-Bit EDA Netlist Writer
  Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition
  Processing started: Fri Feb 21 11:02:56 2014
Command: quartus_eda --functional=off --timescale=1ps --simulation=on --tool=modelsim_oem --format=verilog Pong -c Pong
Generated files "Pong.vo", "Pong_fast.vo", "Pong_v.sdo" and "Pong_v_fast.sdo" in directory "/Scrivania/Pong/simulation/modelsim/" for EDA simulation tool
Quartus II 64-Bit EDA Netlist Writer was successful. 0 errors, 0 warnings
  Peak virtual memory: 396 megabytes
  Processing ended: Fri Feb 21 11:02:58 2014
  Elapsed time: 00:00:02
  Total CPU time (on all processors): 00:00:02
*******************************************************************
Running quartus modelsim
>> vsim -c  -do Pong.do
PID = 440
  Reading C:/altera/13.0sp1/modelsim_ase/tcl/vsim/pref.tcl
 
  # 10.1d
 
  # do Pong.do
  # ** Warning: (vlib-34) Library already exists at "work".
  #
  # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov  2 2012
  # -- Compiling module Pong
  #
  # Top level modules:
  #    Pong
  # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov  2 2012
  # -- Compiling module Pong_vlg_sample_tst
  # -- Compiling module Pong_vlg_check_tst
  # -- Compiling module Pong_vlg_vec_tst
  #
  # Top level modules:
  #    Pong_vlg_vec_tst
  # vsim -L cycloneii_ver -L altera_ver -L altera_mf_ver -L 220model_ver -L sgate -c -t 1ps -novopt work.Pong_vlg_vec_tst
  # Loading work.Pong_vlg_vec_tst
  # Loading work.Pong
  # Loading cycloneii_ver.cycloneii_lcell_comb
  # Loading cycloneii_ver.cycloneii_lcell_ff
  # Loading cycloneii_ver.cycloneii_io
  # Loading cycloneii_ver.cycloneii_mux21
  # Loading cycloneii_ver.cycloneii_dffe
  # Loading cycloneii_ver.cycloneii_asynch_io
  # Loading cycloneii_ver.cycloneii_clkctrl
  # Loading cycloneii_ver.cycloneii_mux41
  # Loading cycloneii_ver.cycloneii_ena_reg
  # Loading work.Pong_vlg_sample_tst
  # Loading work.Pong_vlg_check_tst
  # SDF 10.1d Compiler 2012.11 Nov  2 2012
  #
  # ** Error: (sdfcomp-7) Failed to open SDF file "Pong_v.sdo" in read mode.
  #
  #
  # No such file or directory. (errno = ENOENT)
  #
  # Loading cycloneii_ver.CYCLONEII_PRIM_DFFE
  # ** Error: Pong_v.sdo_typ.csd: syntax error, unexpected $end, expecting '('
  # ** Error: (vsim-SDF-3445) Failed to parse SDF file "Pong_v.sdo".
  #    Time: 0 ps  Iteration: 0  Instance: /Pong_vlg_vec_tst File: Pong.vt
  # Error loading design

sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby Leonardo » 21 Feb 2014, 14:48

Code: Select all
** Error: (sdfcomp-7) Failed to open SDF file "Pong_v.sdo" in read mode.


Hai qualcosa che non va bene, puoi postare il progetto (file VHDL, progetto Quartus, etc..) in un file .zip?
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 21 Feb 2014, 14:57

Non riesco a postarlo perché supera i 256 KiB... Se vuoi te lo mando per mail..
sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 21 Feb 2014, 14:59

Non riesco a postarlo perché supera i 256 KiB... se mi mandi un indirizzo mail in pm ti mando una mail...
sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby Leonardo » 21 Feb 2014, 15:21

Potresti provare a caricare il file su un servizio di file hosting gratuito (DropBox, SkyDrive, etc..) e condividere il link sul forum.
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 21 Feb 2014, 17:39

Caricato su DropBox. L'entità Pong_Manager è ancora molto incompleta. Ho provato a simulare dopo aver modificato l'entità Input_Manager.

https://www.dropbox.com/s/yo8eslaniy78bw0/Pong.zip

Ps. Quartus II e ModelSim sono installati su Windows virtualizzato da mac.. potrebbe creare problemi?
sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby Leonardo » 21 Feb 2014, 18:38

Per la simulazione Gate Level hai fatto una compilazione completa? Così facendo non da errori

Ciao
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Segnali e variabili x [Ping Pong]

Postby sgranfius » 26 Feb 2014, 09:00

Ringrazio tutti per i preziosi consigli! Allego il link alla mia versione di pong praticamente conclusa! Rimane qualche warning che spero di riuscire ad eliminare.

https://www.dropbox.com/s/046vh1w9l9720 ... _REV28.zip
sgranfius
 
Posts: 17
Joined: 08 Feb 2014, 03:04

Re: Segnali e variabili x [Ping Pong]

Postby Leonardo » 26 Feb 2014, 09:39

Molto bene.

Hai visto i warning critici "Timing requirements not met"?

Per passare dalle simulazioni all'hardware reale con un funzionamento "garantito" dovresti specificare i vincoli temporali in modo da permettere al compilatore di realizzare hardware funzionante con le tempistiche specificate. Per fare le cose per bene dovresti specificare anche il carico capacitivo di ogni pin di uscita ma tenendo un pò di margine potrebbe non essere strettamente necessario.

Puoi iniziare dal menù Assignments / TimeQuest Timing Analyzer Wizard, se è la prima volta ti consiglio caldamente di seguire qualche tutorial per capire i principali vincoli da impostare.
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Previous

Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 2 guests

cron