Pipelining in Verilog

A

Aymen

Guest
Ik heb geschreven deze code om complexe vermenigvuldiging van 2 getallen uit te voeren met de geconjugeerde van het tweede nummer:
Code:module PipedCompMultConj (CLK, DR1, DI1, DR2, DI2, drout, diout);

input [3:0] DR1, DI1, DR2, DI2;

input clk;

output [7:0] drout, diout;

wire [7:0] R1, R2, R3, R4, R5, R6;reg [15:0] IR;

reg [31:0] PR1;

reg [31:0] PR2;

reg [15:0] OR;toewijzen drout = OR [7:0];

toewijzen diout = OR [15:8];mult_pipe m1 (IR [3:0], IR [7:4], r1);

mult_pipe m2 (IR [11:8], IR [15:12] r2);

mult_pipe m3 (PR1 [23:20], PR1 [27:24] R3);

mult_pipe M4 (PR1 [19:16], PR1 [31:28], R4);cla8_adder C1 (R5, PR2 [7:0], PR2 [15:8]); / / reële deel

cla8_sub C2 (R6, PR2 [23:16], PR2 [31:24]); / / imaginair deelaltijd @ (negedge clk)

beginnen

IR <= (DI2, DI1, DR2, DR1);

PR1 <= (IR, R2, R1);

PR2 <= (R4, R3, PR1 [15:0]);

OF <= (R6, R5);

eindigenendmodule

 
Hi Aymen ,

Ik denk dat de uitvoering is oke.U kunt ook synthese om te zien wat je krijgt.

 
danken u zeer wadaye, heb ik synthetiseren deze code met behulp van Xilinx met en zonder pipelining.De maximale frequentie verkregen met pipelining lager is dan het geval zonder pipelining.
!!!???

 
Met FPGA zoals Xilinx Spartan-3 en Virtex-II, moet u extra voorzichtig zijn wanneer pipelining multiplicatoren.Het vereist meer registers dan je normaal zou verwachten.Zorgvuldig onderzoeken van de synthese en timing resultaten om te zien wat er gebeurt.

Ik ben er zeker ASIC-technieken zijn verschillend.

Met Xilinx hulpmiddelen kunt u gebruik maken van gewone * - Verilog exploitanten in plaats van instantiëren rekenkundige modules.Ik denk dat maakt de code leesbaarder te maken.

Door de manier, kunt u een complexe vermenigvuldiging met 3 multipliers en 5 toevoegingen.

 
Quote:

Door de manier, kunt u een complexe vermenigvuldiging met 3 multipliers en 5 toevoegingen.
 
bijvoorbeeld
x = a bi
y = c di
real = ac-bd
im = (a b) (c d)-ac-bd
de reden misschien de maximale vertraging tussen fasen is hetzelfde, doe het niet veranderen als u een extra podium toegevoegd
vergelijking met unpipeline structuur, pijpleiding strucure excute dezelfde opereren in verschillende cycli, zodat de frequentie kan worden sneller,
als voor uw code, maar voegt u een extra podium, maar de werken op de maximale pad dont daling

 
Wat voor soort Xilinx FPGA gebruikt u?

Wat zijn die mult_piped en cla8 modules?De Xilinx tools omvatten geen dergelijke modules.Een paar minuten later ...Oh my gosh, gebruikt u dit?
http://www.pldworld.com/_hdl/1/www.doulos.co.uk/models/model_9901.htm

Ik heb niet onderzocht die code, maar op het eerste gezicht lijkt het te ingewikkeld, en verkeerde pipelining voor een Xilinx FPGA.

Heb je echt nodig hebt enige 4-bit vermenigvuldiging?Ik denk dat een Xilinx multiplier blok kan twee kleine vermenigvuldigingen doen tegelijk.

 
door de manier als slechts 4 bits multiplier
de kosten van de hardware van 3 multipliers en 5 toevoegingen
misschien niet beter dan 4 multipliers en 2 toevoegingen

 
Quote:Heb je echt nodig hebt enige 4-bit vermenigvuldiging?
Ik denk dat een Xilinx multiplier blok kan twee kleine vermenigvuldigingen doen tegelijk.

 
Zie app noot 467, pagina 6, "Twee Multipliers in een interne Primitive".Ik heb niet geprobeerd.
http://direct.xilinx.com/bvdocs/appnotes/xapp467.pdf

 

Welcome to EDABoard.com

Sponsor

Back
Top