error's in xillinx vivado

Shiptronic

Overleden

vhdl code:


VGA_HS       : out  STD_LOGIC;);

VGA_HS       : out  STD_LOGIC);
[/code=vhdl]


Druk even op quote, kan je zien hoe ik het gedaan heb
Wie de vraag stelt, zal met het antwoord moeten leren leven.

Ja ok, er mistte een = tussen code en vhdl. Dat staat nergens in de help, volgens mij mist er een stuk daar.

Loopt de synthese nu wel goed voor alle files in je project? Het staat me bij dat ISE zelf de files in de juiste hierarchy zet als ie alles geanaliseerd heeft. En als je die optie wel gevonden hebt, waarom kun je dan niets selecteren?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 9 april 2016 09:00:49 schreef flipflop:

Loopt de synthese nu wel goed voor alle files in je project? Het staat me bij dat ISE zelf de files in de juiste hierarchy zet als ie alles geanaliseerd heeft. En als je die optie wel gevonden hebt, waarom kun je dan niets selecteren?

Ik gebruik vivado omdat ise geen artix 7 meer ondersteund .En ik heb wel de menu gevonden om het te kunnen veranderen maar geen keuzen om van top file te veranderen. En compileren lukt ook :)Maar ze staan nog altijd onder die syntak en non modules files

Als er syntax errors zijn, dan compileren ze toch ook niet? Of mis ik iets?

Heb je al gegoogled?
https://forums.xilinx.com/t5/Simulation-and-Verification/Assigned-Top-…

[Bericht gewijzigd door flipflop op zaterdag 9 april 2016 18:41:48 (48%)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

volgens mij ben je mij ben je fout flipflop (al weet ik het echt niet zeker)

volgens vivado compileert hij normaal

Toch zit er nog steeds een syntax error in je Top.vhd file. Misschien "compileert" ie wel goed voor iets, maar niet je Top file lijkt het. Hint: punt-comma.

Je kunt ook nog in de log files kijken wat ie precies doet. Het zal wel te maken hebben met de foute toplevel module.

ps, als je dat toplevel eens uitklapt (die vetgedrukte), wat staat daar dan onder?

[Bericht gewijzigd door flipflop op zaterdag 9 april 2016 19:10:54 (13%)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Als ik mijn top file openkalp staat het volgende er onder: U0-clk_wiz_0_clk_wiz-xilinx

Ondertussen heb ik al 1 vergeten ; gevonden. Aleen is er wel niet verandert aan de situatie buiten dat vga_control nu ook in het mapje Non-module Files staat.

Juist, dan is die nu syntactisch correct, alleen het zit nog nergens onder. Wordt niet gebruikt in je project dus. Syntax errors moet je NERGENS hebben, dus dat is prio 1. Als die top file nu correct is, zou je 'm nu wellicht ook zo kunnen markeren in Vivado.
Anders even googlen, zo uit m'n hoofd ken ik Vivado niet goed genoeg. Geen anderen met Xilinx ervaring hier? Is wel een beetje 2-mans topic zo.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 9 april 2016 18:31:00 schreef flipflop:
Als er syntax errors zijn, dan compileren ze toch ook niet? Of mis ik iets?

Heb je al gegoogled?
https://forums.xilinx.com/t5/Simulation-and-Verification/Assigned-Top-…

Ik kan die optie niet selecteren:S Maar FlipFlop toch bedankt voor de hulp

Top level selecteren voor synthese doe je door:
- rechtermuisknop op Top.vhd in de project navigator
- set as top

Het compileert nu omdat de clk_wiz_0 file als top level gekozen is.
Top.vhd wordt NIET gesynthetiseerd.

DRC errors komen doordat de top-level poorten niet geconstraint zijn naar fysieke pinnen / IO standard (LVCMOS25 LVCMOS33 etc.)

Ok nu nog een klein vraagje volgens het boek The sdudents guide to vhdl moet ik mijn port mapping zo doen

vhdl code:

entity Top is
    Port map  (  CLK 		: in  STD_LOGIC;
            VGA_RED      : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_BLUE     : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_GREEN    : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_VS       : out  STD_LOGIC;
            VGA_HS       : out  STD_LOGIC
         
			  );
end Top;

klopt dit? want het lijkt me geen verschil te maken of ik nu zoals hier boven doe of zoals hier onder.Trouwens volgens mij moet je in vivado geen port map schrijven(wat ook niet veel uitmaakt heb het met en zonder map geprobeert)

vhdl code:

entity Top is
    Port (  CLK 		: in  STD_LOGIC;
            VGA_RED      : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_BLUE     : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_GREEN    : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_VS       : out  STD_LOGIC;
            VGA_HS       : out  STD_LOGIC
         
			  );
end Top;

De tweede vorm is correct om in de entity de port definities te doen.

Port map gebruik je bij het instantieren van een component (vga_control in jouw geval)

Op 10 april 2016 16:13:13 schreef DigitalDesigned:
Port map gebruik je bij het instantieren van een component (vga_control in jouw geval)

dus hier zou ik een prot map moeten gebruiken?

vhdl code:



Inst_Vga_control: Vga_control	CLK_I => CLK,
		VGA_HS_O => VGA_HS,
        VGA_VS_O => VGA_VS,
		VGA_RED_O => VGA_RED,
        VGA_BLUE_O => VGA_BLUE,
        VGA_GREEN_O => VGA_GREEN,
       
	);

Ik heb hier totaal geen verstand van (wel van PIC programmatie) dus sorry als ik wat stoms tik, maar als ik dit zo voor de eerste keer lees, hoort die komma achter VGA_GREEN er wel te staan ??

Op deze manier:

vhdl code:


Inst_Vga_control : Vga_control port map (
   CLK_I => CLK,
   VGA_HS_O => VGA_HS,
   VGA_VS_O => VGA_VS,
   VGA_RED_O => VGA_RED,
   VGA_BLUE_O => VGA_BLUE,
   VGA_GREEN_O => VGA_GREEN
);
 

- na vga_control port map (
- Geen komma na VGA_GREEN

DigitalDesigned het maakt geen verschil uit het staat nog altijd onder de sintax error map. Ik moet er wel bijzeggen dat ik vanuit een werkend voorbeeld ben begonnen.Dat in vivado heeft gewerkt

Op 10 april 2016 17:54:46 schreef Blauw Lampje:
Ik heb hier totaal geen verstand van (wel van PIC programmatie) dus sorry als ik wat stoms tik, maar als ik dit zo voor de eerste keer lees, hoort die komma achter VGA_GREEN er wel te staan ??

Nee, die comma hoort er inderdaad niet. De comma betekent, hierna komt het volgende signaal. Bij de laatste is er geen volgende en dus sluit je gelijk af met een haakje.

TS, je snapt niet helemaal wat je doet met dat port statement. Als je een module definieert, dan definieer je daar ook bij wat z'n in en uitgangen zijn. In dat geval staat er alleen "port" en geen map. "Map" betekent, hoe sluit ik de port aan. Je mapped een input of output aan een signaal. Dat is dus bij instantiatie van een module in een hoger level. Bv in je toplevel instantieer je vga_xx. De laatste heeft een port en die map je op signalen in dat toplevel. Eigenlijk precies zo alsof je een IC aansluit op een printplaat.

oh, nog over de syntaxen: Vivado geeft zeker weten aan wat de errors zijn. Zoek die eerst eens op en los de errors op, anders kom je nooit ergens. Errors wegwerken en liefst warnings ook. Die laatste comma kan nooit gewerkt hebben, da's gewoon geen correct VHDL. VDHL is erg strikt dus ik kan me niet voorstellen dat er een synthesiser is die dat accepteert.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Beetje warrig verhaal zo. Kun je aangeven wat je hebt veranderd waardoor het niet meer werkt?

Gezien ik je hoor praten over de poort map van je top level vraag ik me af of je een poort hebt toegevoegd of verwijderd. Zo ja, heb je dan ook het in/uitgangssignaal toegewezen aan een fysieke pin in de .XDC file?

LED addicted... Fijnmalen en snuiven maar!! :P

Op 10 april 2016 21:27:45 schreef Nieko:
Beetje warrig verhaal zo. Kun je aangeven wat je hebt veranderd waardoor het niet meer werkt?

https://reference.digilentinc.com/basys3:gpiodemo van dit project heb ik alles er uitgegooid wat niet met het vga gedeelte te doen heeft )User Switches, User LEDs ,User Push Buttons ,4-digit 7-Segment Display ,USB-UART Bridge ,USB HID Host With Mouse ) heb ik er uitgesmeeten. zodoende dat ik mijn vga aansturing alleen over hou.Dit zodat ik hier later zelf op kan verder bouwen.Dus in die top file heb ik dus alles verwijdert wat niet met die vga te maken had.Eveneens heb ik aan die xdc file niet echt veel verandert .Sorry voor alle verwarring en hoop je hiermee wat wijzer heb gemaakt over mijn probleem.

Het is natuurlijk wel belangrijk dat je de pin assignments in je XDC file die je niet gebruikt in je TOP verwijderd. Anders geeft dat geheid problemen tijdens het mappen/place & routen van het geheel.

LED addicted... Fijnmalen en snuiven maar!! :P

Ik heb even op je github link gekeken en de code van Top aangepast naar een werkende versie (gecheckt in vivado 2015.3):

vhdl code:


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

--The IEEE.std_logic_unsigned contains definitions that allow 
--std_logic_vector types to be used with the + operator to instantiate a 
--counter.
use IEEE.std_logic_unsigned.all;

entity Top is
    Port (  CLK 		: in  STD_LOGIC;
            VGA_RED      : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_BLUE     : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_GREEN    : out  STD_LOGIC_VECTOR (3 downto 0);
            VGA_VS       : out  STD_LOGIC;
            VGA_HS       : out  STD_LOGIC -- Hier geen comma
         
			  );
end Top;


architecture Behavioral of Top is



component Vga_control
    Port ( CLK_I       : in STD_LOGIC;
           VGA_HS_O    : out STD_LOGIC;
           VGA_VS_O    : out STD_LOGIC;
           VGA_RED_O   : out STD_LOGIC_VECTOR (3 downto 0);
           VGA_BLUE_O  : out STD_LOGIC_VECTOR (3 downto 0);
           VGA_GREEN_O : out STD_LOGIC_VECTOR (3 downto 0) -- Hier geen comma
   
           );
end component;


begin -- Dit moet toegevoegd worden tussen de declaraties van signalen components etc. en de echte inhoud

----------------------------------------------------------
------              VGA Control                    -------
----------------------------------------------------------

Inst_Vga_control: Vga_control port map ( -- Hier "port map (" toegevoegd
	CLK_I       => CLK,
	VGA_HS_O    => VGA_HS,
	VGA_VS_O    => VGA_VS,
	VGA_RED_O   => VGA_RED,
	VGA_BLUE_O  => VGA_BLUE,
	VGA_GREEN_O => VGA_GREEN -- Hier geen comma
      
	);

end Behavioral;

Ik raad je wel aan om eventueel een tutorial over VHDL te volgen, bijvoorbeeld: http://class.ece.iastate.edu/cpre583/ref/VHDL/shock_awe_vhdl_adobe.pdf

Port assignments voor niet bestaande poorten in de .xdc zorgen alleen voor warnings, dus is niet netjes maar zou wel moeten werken.

Hey hey
eindelijk eens wat goed nieuws:) het werkt zoals het hoort (buiten die xdc fouten dan). zoals DigitalDesigned aanhaalde ben ik gewoon mijn begin statment vergeten schrijven
hartelijk dank aan iedereen die mee heeft gedacht aan deze fouten.

[Bericht gewijzigd door Ben De Lathouwer op maandag 11 april 2016 18:37:29 (61%)

En waardoor werkt het nu wel? Wat zat er fout?

Over die , en ; Als je het zo opschrijft, is de verwarring weg en voelt het (voor mij in elk geval) ook veel duidelijker:

vhdl code:


component Vga_control
  Port ( CLK_I       : in STD_LOGIC;
         VGA_HS_O    : out STD_LOGIC;
         VGA_VS_O    : out STD_LOGIC;
         VGA_RED_O   : out STD_LOGIC_VECTOR (3 downto 0);
         VGA_BLUE_O  : out STD_LOGIC_VECTOR (3 downto 0);
         VGA_GREEN_O : out STD_LOGIC_VECTOR (3 downto 0)  );
end component;
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

men begin statement te vergeten in men top modulle:)