Store fejl under VHDL Synthesis

S

sgil

Guest
Hej alle,

Jeg forsøger at gennemføre den følgende kode:

-------------------------------------------------- --------------------------------
library IEEE;
brug IEEE.STD_LOGIC_1164.ALL;
brug IEEE.STD_LOGIC_ARITH.ALL;
brug IEEE.STD_LOGIC_UNSIGNED.ALL;

enhed fir_cu er

Port (fa: i STD_LOGIC;
fb: i STD_LOGIC;
FC: i STD_LOGIC;
f_d: i STD_LOGIC;
CLK: i STD_LOGIC;
reset_n: i STD_LOGIC);
- Y: ud STD_LOGIC_VECTOR (3 downto 0); - prøv at fjerne ubrugte output porte ..
- FY: ud STD_LOGIC;
- Optaget: ud STD_LOGIC);
udgangen fir_cu;

architecture Behavioral af fir_cu er

komponent ikon
havn
(
control0: out std_logic_vector (35 downto 0)
);
udgangen komponent;

komponent ila
havn
(
kontrol: i std_logic_vector (35 downto 0);
CLK: i std_logic;
data: i std_logic_vector (53 downto 0);
trig0: i std_logic_vector (7 downto 0)
);
udgangen komponent;

signal control0: std_logic_vector (35 downto 0);
signal ila_data: std_logic_vector (53 downto 0);
signal trig0: std_logic_vector (7 downto 0);
--
signal cnt: std_logic_vector (7 downto 0);
signal Lstrobe_R1: std_logic;
signal Lstrobe_R4: std_logic;
signal Rstrobe_R1: std_logic;
signal Rstrobe_R4: std_logic;
signal selR4: std_logic_vector (1 downto 0);
signal selR1: std_logic;
signal desel_R1: std_logic;
signal desel_R4: std_logic;
signal enable_R1: std_logic;
signal enable_R4: std_logic;
signal d_strobe_Ah0: std_logic;
signal d_strobe_Y: std_logic;
signal a_strobe: std_logic;
signal b_strobe: std_logic;
signal c_strobe: std_logic;
signal d_strobe: std_logic;

signal dummy_busy: std_logic;

begynd

i_icon: ikon
port kortet
(
control0 => control0
);

i_ila: ila
port kortet
(
kontrol => control0,
CLK => CLK,
data => ila_data,
trig0 => trig0
);

- Time Slot 0
T0: processen (CLK)
begynd
if (clk'event og CLK ='1 ')
og derefter
if (fa ='1 'og fb ='1' og fc ='1 'og f_d ='1')
og derefter
if (reset_n ='1 ')
og derefter
cnt <= "00000000";
udgangen, hvis;
udgangen, hvis;

a_strobe <='1 ';
b_strobe <='1 ';
c_strobe <='1 ';
d_strobe <='1 ';
selR4 <= "00";
cnt <= cnt '1 ';

udgangen, hvis;
ende proces T0;

- Time Slot 1
T1: processen (CLK)
begynd
if (clk'event og CLK ='1 ')
og derefter
if (cnt = "00000001")
og derefter
dummy_busy <='1 ';
Lstrobe_R1 <='1 ';
Lstrobe_R4 <='1 ';
cnt <= cnt '1 ';

elsif (cnt = "000000010")
og derefter
enable_R4 <='1 ';
selR4 <= "01";
selR1 <='0 ';
desel_R4 <='0 ';
cnt <= cnt '1 ';elsif (cnt = "00000011")
og derefter
cnt <= cnt '1 ';
Lstrobe_R1 <='0 ';
Lstrobe_R4 <='0 ';
enable_R4 <='0 ';

elsif (cnt = "00000100")
og derefter
Rstrobe_R4 <='1 ';
cnt <= cnt '1 ';

elsif (cnt = "00000101")
og derefter
d_strobe_Ah0 <='1 ';
cnt <= cnt '1 ';

elsif (cnt = "00000110")
og derefter
cnt <= cnt '1 ';
udgangen, hvis;

udgangen, hvis;
ende proces T1;

- Time Slot 2
T2: processen (CLK)
begynd
if (clk'event og CLK ='1 ')
og derefter
if (cnt = "00000111")
og derefter
Lstrobe_R1 <='1 ';
Lstrobe_R4 <='1 ';
cnt <= cnt '1 ';

elsif (cnt = "00001000")
og derefter
enable_R1 <='1 ';
enable_R4 <='1 ';
selR4 <= "10";
selR1 <='1 ';
desel_R4 <='1 ';
desel_R1 <='0 ';
cnt <= cnt '1 ';

elsif (cnt = "00001001")
og derefter
cnt <= cnt '1 ';
Lstrobe_R1 <='0 ';
Lstrobe_R4 <='0 ';
enable_R4 <='0 ';
enable_R1 <='0 ';

elsif (cnt = "00001010")
og derefter
Rstrobe_R4 <='1 ';
Rstrobe_R1 <='1 ';
cnt <= cnt '1 ';
udgangen, hvis;

udgangen, hvis;
ende proces T2;

ila_data (7 downto 0) <= cnt (7 downto 0);
ila_data (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />

<= Fa;
ila_data (9) <= fb;
ila_data (10) <= fc;
ila_data (11) <= f_d;
ila_data (12) <= CLK;
ila_data (13) <= Lstrobe_R1;
ila_data (14) <= Lstrobe_R4;
ila_data (15) <= Rstrobe_R1;
ila_data (16) <= Rstrobe_R4;
ila_data (18 downto 17) <= selR4 (1 downto 0);
ila_data (19) <= desel_R1;
ila_data (20) <= desel_R4;
ila_data (21) <= enable_R1;
ila_data (22) <= enable_R4;
ila_data (23) <= d_strobe_Ah0;
ila_data (24) <= d_strobe_Y;
ila_data (25) <= dummy_busy;

trig0 (0) <= fa;
trig0 (1) <= fb;
trig0 (2) <= fc;
trig0 (3) <= f_d;

udgangen Behavioral;

------------------------------------
Men jeg får flere fejl - jeg kontrolleret Xilinx støtte hjemmeside for at finde mulige årsager, men som ikke rigtig hjælpe .. eller jeg sikkert ikke ved, hvad de skal ændre præcis ...Jeg får følgende:
================================================== ======================

FEJL: Xst: 528 - Multi-kilde i Unit <fir_cu> om signal <desel_R4>
Kilder, er:
Signal <desel_R4> i Unit <fir_cu> er tildelt Vcc

FEJL: Xst: 528 - Multi-kilde i Unit <fir_cu> om signal <Lstrobe_R1>
Kilder, er:
Udgangssignal af FD instans <Lstrobe_R1>
Output signal om FDSE instans <Lstrobe_R1_ren>

FEJL: Xst: 528 - Multi-kilde i Unit <fir_cu> om signal <enable_R1>
Kilder, er:
Udgangssignal af FD instans <enable_R1>
Udgangssignal af FDE instans <enable_R4>

FEJL: Xst: 528 - Multi-kilde i Unit <fir_cu> om signal <selR4 <1>>
Kilder, er:
Signal <selR4 <1>> i Unit <fir_cu> er tildelt GND

FEJL: Xst: 528 - Multi-kilde i Unit <fir_cu> om signal <selR4 <0>>
Kilder, er:
Signal <selR4 <0>> i Unit <fir_cu> er tildelt Vcc

FEJL: Xst: 528 - Multi-kilde i Unit <fir_cu> om signal <cnt <3>>
Kilder, er:
FATAL_ERROR: Xst: Overførsel /
export / Port_Main.h: 127:1.17 - Dette program har opdaget en usædvanlig situation, hvoraf det ikke kan inddrive.Processen vil bringe.For mere information om denne fejl,
kan du høre svarene Database eller åbne en WebCase med dette projekt er knyttet til http://www.xilinx.com/support.

Processen "sammenfatte" mislykkedes

 
Kun en proces kan være en drivkraft for et signal.I din kode er der mange signaler drevet af flere processer, hvorfor det er fejl.

 
Tak for det hurtige svar ring0

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Smile" border="0" />

...

Du har ret ... Jeg har et spørgsmål, hvornår kan jeg have flere processer?er det kun, når alle de signaler, der drives i disse processer, som udelukker hinanden / ikke har noget at gøre med hinanden?

I så fald, vil jeg ændre min kode sådan, at jeg har kun én proces, og se om det virker ..

 
For eksempel kan du have flere processer, når en proces bruge output fra andre proces.Det er kun nødvendigt at sikre, at intet signal er drevet af flere processer (eller parallelle opgaver).

 
Jeg fik fjernet de fejl ved hjælp af en proces, og simulation fungerer upåklageligt.

Nu, hvis jeg ønsker at bruge en anden proces, der bruger produktionen af den første proces gør min anden proces kræver, at alle disse signaler (anvendes fra processen 1) i sin følsomhed liste?eller burde 'CLK' nok?

Tak

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Smile" border="0" />
 
Til kant-synkrone processer (flip-flops), et ursignal er tilstrækkeligt til foelsomhed listen (og asynkron klart signal, hvis du bruger det).For låse og asynkrone processer bør du nævne hver signal anvendes i processen i foelsomhed liste med henblik på at sikre ligestilling mellem simulation og syntese.

 

Welcome to EDABoard.com

Sponsor

Back
Top