Inden du kommer for langt: Se først opgaven!!!
Der var kun en rigtig løsning sidst – Peter fra Protelevision klap dig selv på skulderen! Det var stærkt set.
Opgaven gik ud på at spotte hvad der var galt – samt forklare hvad der skal gøres – i noget FPGA kode, når synteseværktøjet (her ISE fra Xilinx) kommer med den her fejl:
”WARNING:Route - CLK Net:gclk_IBUFG
may have excessive skew because 76 CLK pins and 5 NON_CLK pins
failed to route using a CLK template.”
Anders forklarer hvordan man kan gå frem i den situation:
1) Du undersøger om der er blevet indsat en clock-buffer på dit clock net, f.eks. ved gennemsyn af log filer og konstaterer at der indsat BUFG på clock net – hvad så…..
2) Du undersøger, hvordan clock signal kommer ind fra pin eller PLL til en/flere FF f.eks. gennem FPGA editor GUI. Her får du øje på, at det clock net, du forventer at se, pludselig er 2 forskellige net, og du finder hurtigt frem til fejlkilden – en simpel stavefejl i RTL source ?
Der er i VHDL indsat en BUFG således:
BUFG_inst : BUFG port map (
O => gclk_int,
I => gclk);
Fejlkilden er en fejl i port map for en FIFO
Der stod:
async_fifo : afifo_16kx16
port map (
..
wr_clk => gclk
..
);
Det skulle have været:
async_fifo : afifo_16kx16
port map (
..
wr_clk => gclk_int
..
);
Så lille en fejl – så meget ballade…