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
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