Nou en VHDL (si us plau ajuda)

H

Hammer111

Guest
Hola sóc nou en VHDL de codificació i necessito una mica d'ajuda. Estic tractant de fer un semàfor per a cotxes i un altre per a vianants. Vaig fer aquest codi que funciona molt bé amb el simulador, però quan vaig tractar de posar-lo en el xip que té aquest error: ERROR: XST: 825 - "C: / sustav/test/test1.vhd" la línia 49: Declaració d'espera en un procediment No s'accepten. Jo solia FPGA de la meva universitat (50 MHz kvartz) així que vaig haver de comptar amb 50 milions sota les transicions d'alta per obtenir un segon. aquí està el codi: test1 entitat és port (Rellotge: en std_logic; clau: en std_logic; groc: a std_logic: = '0 '; verd: a std_logic: = '1'; vermell: a std_logic: = '0 '; pred : a std_logic: = '1 '; pgreen: a std_logic: = '0'); final prueba1, comportament de prueba1 arquitectura és senyal de s: rang sencer de 0 a 50: = 0; senyal ns: rang sencer de 0 a 50: = 0; iniciar el procés de començar a esperar fins que la clau = '1 '; per j d'1 a 38 de bucle per i en el bucle d'espera des 1-50.000.000 fins al rellotge = '1'; ns
 
Bé ... En el treball de VHDL, que no és suficient que el codi simula perfectky, comproveu que el codi és "Synthizable", el que significa que f es pot posar en una FPGA o convertit en ASIC, eina synthsis fa molts ... la majoria de Leonardo i recentment la precisió són exemples Ara pensa, com la FPGA espera fins que prement una? la manera com ho va escriure suggereixen tirar, per recórrer i veure, això és bo si un microprocessador i realitzar el treball, però no hi ha processador! Intenta utilitzar si en comptes d'esperar ", si el botó s'uneixi després fer ..." Espero que ajudi ..
 
És el codi d'una simulació per ordinador, no per a una FPGA. En primer lloc, anem a tirar el llaç intern i poseu-la en un nou procés.
Code:
 per començar el procés j en el bucle d'espera fins l'1 fins 50 milions de rellotge = '1 'ns
 
GRAN funciona, però que la lluita contra va a ∞, vull començar a comptar després de prémer la tecla i parar després de 37 segons
Code:
 count1 entitat és port (Rellotge: en std_logic; clau: en std_logic; groc: a std_logic: = '0 '; verd: a std_logic: = '1'; vermell: a std_logic: = '0 '; predefinit: a std_logic: = '1'; pgreen: a std_logic: = '0 '); count1 final, l'arquitectura del comportament de count1 és senyal de s: rang sencer de 0 a 50: = 0; senyal ns: rang sencer de 0-50.000.000: = 1; iniciar el procés (de rellotge) si comencen rising_edge (rellotge) llavors si ns = 5, llavors - em vaig posar 5 per tenir més fàcil el codi adequat per a la prova (ha de 50M) ns
 
Quan la codificació en VHDL o Verilog, pensar en maquinari. Que es descriu el comportament de maquinari. Penseu en el que estan fent els senyals, no pensar en com bucle s'executa. Quan es sorprengui a aquesta filosofia, se li mestre de desenvolupament de FPGA. Al principi pot semblar el mateix, però, més coses VHDL a fer més que vostè tingui en compte que VHDL no és un "programari" de desenvolupament del llenguatge, sinó de maquinari.
 
Gràcies per respostes. Me les vaig arreglar per aconseguir "el disseny de circuit amb VHDL" de VA Pedroni. Vaig a passar per tots els exemples. I he resolt semàfor. Ony tinc tres advertències:
Code:
 count1 entitat és port (Rellotge: en std_logic; clau: en std_logic; groc: a std_logic: = '0 '; verd: a std_logic: = '1'; vermell: a std_logic: = '0 '; predefinit: a std_logic: = '1'; pgreen: a std_logic: = '0 '); count1 final, l'arquitectura del comportament de count1 és senyal de s: rang sencer de 0 a 50: = 0; senyal ns: rang de nombres enters 1-50000000: = 1; senyal x: std_logic: = '0 '; i senyal: std_logic: = '0'; iniciar el procés (de rellotge, la clau, x, i) començar si rising_edge (clau) i després
 
Les advertències no impedeixen la creació de l'arxiu de càrrega. Vostè encara serà capaç de provar el seu disseny en maquinari real. Però sí assenyalar els possibles problemes. Les dues últimes advertències que diuen que no era una redundància, i que va ser optimitzat. Els punts de la primera advertència a les singularitats del senyal "i". Tal com va ser anunciat, i està establerta en '1 'una vegada, i mai es va aclarir de nou a '0'.
 
Hola, o s'enfrontaria a un problema si o simular la netlist nivell de la porta ... ja que o han utilitzat la inicialització d'algunes de les senyals de que està bé per a la simulació de RTL, però l'eina de síntesi fa cas omís dels senyals d'inicialització del sistema operatiu i o poden veure resultats diferents en el netlist porta de nivell ..... tractar de verificar el nivell d'urgència porta Salutacions simulació, dcreddy
 
També abans d'escriure codi VHDL, tenir una bona idea de les diverses declaracions que es pot sintetitzar i que no poden ser sintetitzades. no intentar implementar l'algorisme com un codi de programari, analitzar els algoritmes, dibuixar un esquema dur. identificar com aquest algorisme es convertirà en maquinari. fer el seu paper funcionen correctament abans de començar a programar.
 
quan o utilitzar mànec per descriure circuits ur, mantenir portes de la lògica i la idea d'interconnexió en compte, no és el programari, ha de complir les normes en matèria de maquinari
 
hola evrey un, necessito alguna cosa dels arxius VHDL de venda lliure del segment set (quatre dígits). i Moris Mà CPU de disseny en VHDL. també qualsevol altre tipus de ALU són Wellcome. TNX a tots els
 

Welcome to EDABoard.com

Sponsor

Back
Top