32bit adder i XC95 serie

B

bamdad

Guest
Kære alle;
Jeg har brug for til at gennemføre en 32bit adder i XC95144, jeg allerede har gennemført det i EPM7128, og tidspunktet analyse viser, at den kan bruges op til 36MHz, og jeg bruger det i 32MHz uden problemer.men når jeg prøver det samme design i XC95144, eller XC95288, ISE 7.1 mislykkes, så det passer til designet, eller i nogle tilfælde passer lykkes, men tidspunktet analysatoren viser, at max clock frekvens er omkring 10MHz (Jeg har sat en timing begrænsning af 30ns om ur periode).nogen idéer?

 
Ataki DDoS należą do grupy najstarszych zagrożeń w Internecie, jednak wciąż plasują się w czołówce największych sieciowych plag. Wraz z rozwojem systemów bezpieczeństwa ewoluowały, a ich głównym celem stały się aplikacje i usługi.

Read more...
 
Uanset projektets titel, jeg så mange problemer i ISE7.1, så prøv dit design i ISE6.3

Held og lykke!

 
ISE7.1 har en masse bugs tilsluttet til XC9500.

Opdatering til ISE7.1.02i og se om det virker bedre.

 
Jeg har prøvet det i ISE6.1, ikke 6.3, men montør ikke passer.Den gang gjorde fit designet, men noget,
ser det ud til, at resultaterne af de montør er ikke reproducable, maksimal ure variere mellem passer.Det lader til, at ISE forsøger vis logik intensive adder, hvis den kan blive tvunget til at bruge mindre skiver, det vil lykkes, men jeg ved ikke, hvordan ...

 
Hvilken fejlmeddelelse kan du få?Har montør Rapport giver nogen forslag?Kan du vise os din kode?

En 32-bit parallel adder sandsynligvis fylder det meste af, at CPLD, især hvis du har input registre.I'll bet det går langsomt for - chippen ikke har nogen fast carry logik.

Prøv at pille med den avancerede indretning muligheder såsom Logic Optimization (hastighed / densitet), Minimeringsannonceenheder Input Limit, og Minimeringsannonceenheder PTerm Limit.Det misligholdelser til høj hastighed, der sandsynligvis forårsager alvorlig congesion i en 32-bit adder.Vær sikker på, at du forstår, hvad chippen er i stand til at opnå.(Jeg er ikke meget bekendt med CPLDs.)

ISE ikke super smart.Nogle gange er du nødt til at tage sin hånd og gå det hele gaden.

 
godt, jeg bruger en meget simpel kode.noget som dette:

altid @ (posedge ur)
begynd
akkumulator = akkumulator kontrol;
ende

ISE syntetiserer en 32bit synkrone add-sub fra denne kode i hastighed optimeringsforslag, og i området optimeringsforslag, en 32bit ALU.

Jeg
har også prøvet en anden metode:

tildele akkumulator = resultat kontrol;

altid @ (posedge ur)
begynd
result = akkumulator
øjemed;

den anden kode har gang udstyret med en 22ns mindste ur periode, men i andre tilfælde har det ikke passer, siger, at den maksimale pterm overskredet (når de forsøger XC95288) eller højst logik celler overskredet (når de forsøger XC95144).det eneste, jeg spekulerer på, er, at jeg har prøvet nøjagtig den samme kode, selv med en mere logisk for lastning kontrol register i 8 bit segmenter i 7160 af @ ltera, og selv i 7128 ...hvorfor det ikke passer selv i 95288?

 
Komplet kode please!Behov for at se dine I / O og registrere / wire erklæringer.

Generel regel:
Brug ikke = i en synkron blok.Brug <= stedet.

Jeg byggede denne i ISE 7.1.03i bruger XC95144-7-PQ160 og alle Projektleder indstillinger til standard:
Code:

modul toppen (CLK, a, b, y);

input CLK;

input [31:0] a, b;

output reg [31:0] y = 0;altid @ (posedge CLK) begynder

y <= a b;

ende

endmodule
 
IO er overladt til ISE til at beslutte, hvor sted, jeg har sat nogen begrænsninger på de IO placering, men jeg har lagt en 25ns min ur periode begrænsning på min ursignal.
og om den fuldstændige kode:
Jeg har med held fit dette en i EPM7160 med MaxPlusII 10.2, og designet arbejdede op 36MHz i timing analyse:

modul adder-@ ltera
(Adresse, Control, Strobe, MasterClock, ChAddress, ChLatch, OutputEnable);
input [1:0] Adresse;
input [7:0] Control;
input Strobe;
input MasterClock;
output [12:0] ChAddress;
output ChLatch;
input OutputEnable;

reg [31:0] akkumulator
reg [31:0] ChControlWord;
reg [23:0] TempInput;

tildele ChLatch = MasterClock;

tildele ChAddress = (OutputEnable == 1)? Akkumulatorplader [31:19]: 13'bZ;

altid @ (posedge MasterClock)
begynd
Akkumulator = Akkumulatorplader ChControlWord;
ende

altid @ (posedge Strobe)
begynd
sagen (Adresse)
0: TempInput [7:0] = Control;
1: TempInput [15:8] = Control;
2: TempInput [23:16] = Control;
3:
begynd
ChControlWord [23:0] = TempInput;
ChControlWord [31:24] = Control;
ende
endcase
ende

endmoduleMen det en ikke passer i XC95144-7TQ100 ...Jeg rodet med indstillingerne for den montør, og én gang, og kun én gang gjorde det passer ind i chippen:

modul adder-Xilinx (Control, Ur, Adresse);
input [31:0] Control;
input Clock;
output [12:0] Adresse;

reg [31:0] akkumulator

tildele låsen = Ur;

tildele Adresse = Akkumulatorplader [31:19];

altid @ (posedge MasterClock)
begynd
Akkumulator = Akkumulatorplader Control;
ende

endmodule

 
Eksempel A værker i @ ltera, eksempel B ikke virker i Xilinx - Hvad laver du sammenligner?

To forsvundne-symbol fejl i dit andet eksempel.

Begge eksempler passer fint i XC95144-7-TQ100.Jeg indstille montering option "Logic Optimization" til "Density".

Måske har du brug nyere ISE eller service pack.

Må ikke anvendes = (blokering overdragelse) i sekventiel sektioner.

 
både var plads til på @ ltera, ingen gjorde passer i xilinx ...hvad ur hastighed har du nå i xilinx?Jeg har brug for mindst 40MHz ...et andet punkt,
men den anden er enklere, og kræver mindre logik, og jeg tænkte det kunne passe, men det skete ikke, om de manglende symboler, de er en slags stavefejl på min side, da både design kan udarbejdes, der er ingen synthax eller symbol fejl her, alligevel.
[/ list]

 
Hvordan kan dit andet eksempel arbejde med låsen og MasterClock undefined?

Når jeg indstille optimeringsforslag til "tæthed", begge eksempler passer fint, og rapportere omkring 6 MHz hastighed.
For at nå op på 40 MHz,
har du sandsynligvis brug for logik redesign (usikre succes), eller en bedre chip end 95.144.

Dette går 21.5 MHz i XC95144-7-PQ160 med standard indstillinger.
Code:

modul toppen (CLK, a, y);

input CLK;

input [31:0] a;

output reg [31:0] y = 0;altid @ (posedge CLK) begynder

y <= y a;

ende

endmodule
 
Vær så venlig!Det andet eksempel, det
er bare en simpel fejl ...men selv hvis du definerer disse to signaler (låsen signal kan udelades, da det ikke er en del af de faktiske adder design. og skibsføreren ur er simpelthen et input til adder modul ...
og min pointe er, at konstruktionen ikke engang passe på
95.288 ...med logik optimeringsforslag indstillet til balance ...
Jeg tror, at jeg er nødt til at migrere designet i noget lignende Spartan 3 ..., hvor jeg kan pack mere logik ...selv de processor kerne

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Smile" border="0" />BTW, pointen er, at HVORFOR den første kode, der er mere logik intensive, passer fint i EPM7160, men det andet passer ikke ind i 95288, som har mere logik?er der nogen mulighed for at tvinge ISE at sammenfatte en form for en bedre adder?Jeg tror, at problemet er, at ISE ikke sammenfatte en carry look-ahead adder med optimal segment længder ..

 
Ok, ikke flere manglende symboler, sorry!

Har du prøvet at indstillingen montør Logic Optimeringsforslag til "tæthed"?Du skal først aktivere "avanceret" mode for at se denne mulighed i Project Navigator.Når jeg gør det, både af dine eksempler passer fint i 95.144, men uret hastighed er dårlig.Hvis jeg ikke indstiller denne mulighed, så jeg er nødt til at falde "kollaps input grænse" eller "kollaps pterm grænse" for at opnå bedst.Disse er begge avancerede muligheder også.Det gav mig noget højere clock hastighed, men stadig langtfra 40MHz.Har du set det?
http://direct.xilinx.com/bvdocs/appnotes/xapp444.pdf

Måske spørge Xilinx teknisk support, hvis de kender nogle trick til at presse mere fart ud af en CPLD adder, men jeg betvivle det.Ingen hurtig carry logik, og ISE sandsynligvis genererer en nem løsning snarere end en optimeret løsning.Et andet fingerpeg, Xilinx produkt udvælgelsesventiler vejledninger anbefaler ikke CPLD for aritmetiske ansøgninger, og jeg kan ikke se nogen forslag i her:
http://direct.xilinx.com/bvdocs/appnotes/xapp143.pdf

Jeg
har aldrig brugt en EPM7160.Det kunne være en bedre chip end 95.144.Xilinx CPLDs er billig, unexciting.Xilinx FPGAs såsom Spartan 3 er langt mere kraftfuld.Du kan lide det!

 
Ja, spartansk III er forbløffende ...helt lyse i xilinx produkt linje fra pris og ydeevne aspekt.Den eneste ulempe i disse nye state-of-the-art produkt familier er, at man ikke kan nemt interface dem til 5V-systemer og ved let jeg mener "med lidt ledninger".og den ældre 5V kompatibel familier er dyrere og mindre featureful.men dette er ikke så meget af en bekymring.

Thanx for din hjælp og tid.

 

Welcome to EDABoard.com

Sponsor

Back
Top