Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

Xilinx tool synthesis fatal error

Status
Not open for further replies.

stay_in_chaos

Junior Member level 1
Joined
Dec 30, 2005
Messages
17
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,281
Activity points
1,450
Hello every body,
when i was synthesizing a Design with xilinx tool.it showed some error were i am using a two dimentional array ,i think the tool is not able to understand the way the design is been written that's why it's sowing FATAL ERROR
in this lines
The ERROR REPORT is FATAL ERROR( it shows nothing else)
if(count1==2'b00)begin
store[add][63:0]<=lbi_liga_data;
end else if(count1==2'b01)begin
store[add][127:64]<=lbi_liga_data;
end else if(count1==2'b10)begin
store[add][191:128]<=lbi_liga_data;
end else if(count1==2'b11)begin
store[add][255:192]<=lbi_liga_data;
here i am storing data in memory of size{ [255:0]store[1023:0]
here as the data is in burst so it is not possible to use reg instead of Memory.

can you suggest some logic so that the error is fixed during synthesis.

Thanks and regards
stay_in_chaos
 

echo47

Advanced Member level 5
Joined
Apr 7, 2002
Messages
3,942
Helped
636
Reputation
1,270
Reaction score
88
Trophy points
1,328
Location
USA
Activity points
33,183
synthesis error

What is the error message?

Please show a full module, not just a few lines extracted from the middle.

Xilinx ISE (through version 8.1i) does not support two-dimensional arrays.

reg [255:0]store[1023:0] is a one-dimensional array.

XST can infer Block RAM, but only if you write full-width words. Try using four 64-bit wide arrays instead of one 256-bit wide array.
 

stay_in_chaos

Junior Member level 1
Joined
Dec 30, 2005
Messages
17
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,281
Activity points
1,450
Re: synthesis error

see basically there no need for whole module
and the module is also too large so i can't paste it here

when i am comenting this lines
store[add][63:0]<=lbi_liga_data;
store[add][127:64]<=lbi_liga_data;
store[add][191:128]<=lbi_liga_data;
store[add][255:192]<=lbi_liga_data

the code is synthesized it does't shows any error
or else when i m uncommenting the lines it showed Fatal error

so basically the error is because of this lines only is there any other way

plz help me
 

nand_gates

Advanced Member level 3
Joined
Jul 19, 2004
Messages
892
Helped
174
Reputation
348
Reaction score
51
Trophy points
1,308
Activity points
6,803
Re: synthesis error

Why can't you use 4 memories of 64X1024 for store??
Think hardware then use VHDL just to describe it!
 

semiconductorman

Full Member level 3
Joined
Dec 18, 2004
Messages
156
Helped
23
Reputation
46
Reaction score
4
Trophy points
1,298
Activity points
1,769
Re: synthesis error

Writing bytes/bits into a 2-dimensional array is hardly supported in any tool . As nand gates suggested go ahead and describe 4/ 2 memories , however you want it and then write into the array. U see there is no hardware which can allow you to write into parts of a memory location. You can use byte selects for selecting the bytes alright but ultimately it gets implemented with multiple memories and byte selects acts as memory select . Hope you get my point
 

tkbits

Full Member level 5
Joined
Dec 4, 2004
Messages
242
Helped
39
Reputation
78
Reaction score
2
Trophy points
1,298
Activity points
2,209
Re: synthesis error

stay_in_chaos said:
when i am comenting this lines
store[add][63:0]<=lbi_liga_data;
store[add][127:64]<=lbi_liga_data;
store[add][191:128]<=lbi_liga_data;
store[add][255:192]<=lbi_liga_data

the code is synthesized it does't shows any error
That's because it is equivalent to

store[add][255:0] <= {libi_liga_data[63:0], libi_liga_data[63:0], libi_liga_data[63:0], libi_liga_data[63:0]};
 

samcheetah

Advanced Member level 2
Joined
May 25, 2004
Messages
646
Helped
39
Reputation
78
Reaction score
10
Trophy points
1,298
Location
Pakistan
Activity points
6,932
Re: synthesis error

echo47 said:
What is the error message?

Please show a full module, not just a few lines extracted from the middle.

Xilinx ISE (through version 8.1i) does not support two-dimensional arrays.

reg [255:0]store[1023:0] is a one-dimensional array.

XST can infer Block RAM, but only if you write full-width words. Try using four 64-bit wide arrays instead of one 256-bit wide array.
im also having a simillar problem. ISE 8.1i gives me an error if i write

input [2:0] abc [255:0];

actually my input is a one dimensional array. is this supported?
 

echo47

Advanced Member level 5
Joined
Apr 7, 2002
Messages
3,942
Helped
636
Reputation
1,270
Reaction score
88
Trophy points
1,328
Location
USA
Activity points
33,183
synthesis error

input [2:0] abc [255:0];

I don't think Verilog allows arrays in I/O declarations.
 

Status
Not open for further replies.
Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top