|
|
@@ -134,7 +134,7 @@ module S5443Top
|
|
|
output [3:0] PortSelDir_o, //управление направлением двунаправленного буффера
|
|
|
|
|
|
//mod out line
|
|
|
- output Mod_o,
|
|
|
+ output [ChNum-1:0] Mod_o,
|
|
|
|
|
|
//gain lines
|
|
|
input DspReadyForRx_i,
|
|
|
@@ -225,8 +225,7 @@ module S5443Top
|
|
|
wire [CmdDataRegWith-1:0] ifFtwH;
|
|
|
wire [CmdDataRegWith-1:0] measCtrl;
|
|
|
wire [CmdDataRegWith-1:0] amplitudeMod;
|
|
|
- wire [CmdDataRegWith-1:0] dspTrigIn;
|
|
|
- wire [CmdDataRegWith-1:0] dspTrigOut;
|
|
|
+ wire [CmdDataRegWith-1:0] activePortSel;
|
|
|
wire [CmdDataRegWith-1:0] dspTrigIn1;
|
|
|
wire [CmdDataRegWith-1:0] dspTrigIn2;
|
|
|
wire [CmdDataRegWith-1:0] dspTrigOut1;
|
|
|
@@ -363,6 +362,8 @@ module S5443Top
|
|
|
wire [CmdDataRegWith-1:0] muxCtrl2;
|
|
|
wire [CmdDataRegWith-1:0] muxCtrl3;
|
|
|
wire [CmdDataRegWith-1:0] muxCtrl4;
|
|
|
+ wire [CmdDataRegWith-1:0] muxCtrl5;
|
|
|
+ wire [CmdDataRegWith-1:0] muxCtrl6;
|
|
|
|
|
|
wire [CmdRegWidth-29:0] pgModeArray [PGenNum-1:0];
|
|
|
wire pgPulsePolArray [PGenNum-1:0];
|
|
|
@@ -388,8 +389,13 @@ module S5443Top
|
|
|
wire [TrigPortsNum-1:0] extPortsMuxedOut;
|
|
|
|
|
|
wire measEnd;
|
|
|
+
|
|
|
wire slowMod;
|
|
|
wire fastMod;
|
|
|
+
|
|
|
+ wire [ChNum-1:0] slowModOut;
|
|
|
+ wire [ChNum-1:0] fastModOut;
|
|
|
+
|
|
|
wire [3:0] modKeyCtrl;
|
|
|
wire tirgToDspEvent;
|
|
|
wire trigFromDspEvent;
|
|
|
@@ -401,10 +407,23 @@ module S5443Top
|
|
|
reg dspReadyForRxRegRR;
|
|
|
|
|
|
wire sampleStrobeGenRst;
|
|
|
+
|
|
|
+ wire [ChNum:0] fastModCtrl [ChNum-1:0];
|
|
|
+ wire [ChNum:0] slowModCtrl [ChNum-1:0];
|
|
|
//================================================================================
|
|
|
// assignments
|
|
|
//================================================================================
|
|
|
|
|
|
+ assign fastModCtrl [ChNum-1] = muxCtrl5[18:15];
|
|
|
+ assign fastModCtrl [ChNum-2] = muxCtrl5[14:10];
|
|
|
+ assign fastModCtrl [ChNum-3] = muxCtrl5[9:5];
|
|
|
+ assign fastModCtrl [ChNum-4] = muxCtrl5[4:0];
|
|
|
+
|
|
|
+ assign slowModCtrl [ChNum-1] = muxCtrl6[18:15];
|
|
|
+ assign slowModCtrl [ChNum-2] = muxCtrl6[14:10];
|
|
|
+ assign slowModCtrl [ChNum-3] = muxCtrl6[9:5];
|
|
|
+ assign slowModCtrl [ChNum-4] = muxCtrl6[4:0];
|
|
|
+
|
|
|
assign pgModeArray [PGenNum-1] = pgMode0[21:18];
|
|
|
assign pgModeArray [PGenNum-2] = pgMode0[17:15];
|
|
|
assign pgModeArray [PGenNum-3] = pgMode0[14:12];
|
|
|
@@ -544,9 +563,9 @@ module S5443Top
|
|
|
|
|
|
assign Overload_o = overCtrlR||OverloadS_i;
|
|
|
|
|
|
- assign Mod_o = fastMod;
|
|
|
+ assign Mod_o [ChNum-1:0] = fastModOut;
|
|
|
|
|
|
- assign PortSel_o = ~modKeyCtrl;
|
|
|
+ assign PortSel_o [ChNum-1:0] = ~modKeyCtrl;
|
|
|
assign PortSelDir_o = 4'd15;
|
|
|
|
|
|
assign Trig6to1Dir_o [0] = !measCtrl[16];
|
|
|
@@ -565,10 +584,10 @@ module S5443Top
|
|
|
|
|
|
assign DspReadyForRxToFpgaS_o = dspReadyForRxRegR;
|
|
|
assign StartMeasDsp_o = startMeasSyncR;
|
|
|
+
|
|
|
//================================================================================
|
|
|
// CODING
|
|
|
//================================================================================
|
|
|
-integer m;
|
|
|
|
|
|
always @(posedge gclk) begin //stretching pulse
|
|
|
stopMeasR <= stopMeas;
|
|
|
@@ -853,8 +872,7 @@ RegMapInst
|
|
|
.IfFtwRegH_o (ifFtwH),
|
|
|
.FilterCorrCoefRegL_o (filterCorrCoefL),
|
|
|
.FilterCorrCoefRegH_o (filterCorrCoefH),
|
|
|
- .DspTrigInReg_o (dspTrigIn),
|
|
|
- .DspTrigOutReg_o (dspTrigOut),
|
|
|
+ .ActivePortSel_o (activePortSel),
|
|
|
.DspTrigIn1Reg_o (dspTrigIn1),
|
|
|
.DspTrigIn2Reg_o (dspTrigIn2),
|
|
|
.DspTrigOut1Reg_o (dspTrigOut1),
|
|
|
@@ -938,7 +956,9 @@ RegMapInst
|
|
|
.MuxCtrl1Reg_o (muxCtrl1),
|
|
|
.MuxCtrl2Reg_o (muxCtrl2),
|
|
|
.MuxCtrl3Reg_o (muxCtrl3),
|
|
|
- .MuxCtrl4Reg_o (muxCtrl4)
|
|
|
+ .MuxCtrl4Reg_o (muxCtrl4),
|
|
|
+ .MuxCtrl5Reg_o (muxCtrl5),
|
|
|
+ .MuxCtrl6Reg_o (muxCtrl6)
|
|
|
);
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
@@ -1044,6 +1064,8 @@ DspTrigMux
|
|
|
.IntTrig2_i (1'b0),
|
|
|
.PulseBus_i (7'd0),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (DspTrigIn_o)
|
|
|
);
|
|
|
@@ -1082,6 +1104,8 @@ MeasTrigMux
|
|
|
.IntTrig2_i (1'b0),
|
|
|
.PulseBus_i (7'b0),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (measTrig)
|
|
|
);
|
|
|
@@ -1173,6 +1197,8 @@ PulseGenMux
|
|
|
.IntTrig2_i (intTrig2),
|
|
|
.PulseBus_i (pulseBus),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (pgMuxedOut[j])
|
|
|
);
|
|
|
@@ -1254,6 +1280,8 @@ ExtPortsMux
|
|
|
.IntTrig2_i (intTrig2),
|
|
|
.PulseBus_i (pulseBus),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (extPortsMuxedOut[l])
|
|
|
);
|
|
|
@@ -1282,6 +1310,8 @@ SlowModMux
|
|
|
.IntTrig2_i (1'b0),
|
|
|
.PulseBus_i (pulseBus),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (slowMod)
|
|
|
);
|
|
|
@@ -1307,10 +1337,64 @@ FastModMux
|
|
|
.IntTrig2_i (1'b0),
|
|
|
.PulseBus_i (pulseBus),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (fastMod)
|
|
|
);
|
|
|
|
|
|
+genvar m;
|
|
|
+generate
|
|
|
+ for (m=0; m<ChNum; m=m+1) begin :ModulationMuxes
|
|
|
+ // Mux
|
|
|
+ // #(
|
|
|
+ // .CmdRegWidth (CmdRegWidth),
|
|
|
+ // .PGenNum (PGenNum),
|
|
|
+ // .TrigPortsNum (TrigPortsNum)
|
|
|
+ // )
|
|
|
+ // SlowModMuxOut
|
|
|
+ // (
|
|
|
+ // .Rst_i (initRst),
|
|
|
+
|
|
|
+ // .MuxCtrl_i (slowModCtrl[m]),
|
|
|
+
|
|
|
+ // .DspTrigOut_i (1'b0),
|
|
|
+ // .DspStartCmd_i (1'b0),
|
|
|
+ // .IntTrig_i (1'b0),
|
|
|
+ // .IntTrig2_i (1'b0),
|
|
|
+ // .PulseBus_i (7'h0),
|
|
|
+ // .ExtPortsBus_i (6'h0),
|
|
|
+ // .SlowMod_i (slowMod),
|
|
|
+ // .FastMod_i (1'b0),
|
|
|
+
|
|
|
+ // .MuxOut_o (slowModOut[m])
|
|
|
+ // );
|
|
|
+
|
|
|
+ Mux
|
|
|
+ #(
|
|
|
+ .CmdRegWidth (CmdRegWidth),
|
|
|
+ .PGenNum (PGenNum),
|
|
|
+ .TrigPortsNum (TrigPortsNum)
|
|
|
+ )
|
|
|
+ FastModMuxOut
|
|
|
+ (
|
|
|
+ .Rst_i (initRst),
|
|
|
+
|
|
|
+ .MuxCtrl_i (fastModCtrl[m]),
|
|
|
+
|
|
|
+ .DspTrigOut_i (1'b0),
|
|
|
+ .DspStartCmd_i (1'b0),
|
|
|
+ .IntTrig_i (1'b0),
|
|
|
+ .IntTrig2_i (1'b0),
|
|
|
+ .PulseBus_i (7'h0),
|
|
|
+ .ExtPortsBus_i (6'h0),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (fastMod),
|
|
|
+
|
|
|
+ .MuxOut_o (fastModOut[m])
|
|
|
+ );
|
|
|
+ end
|
|
|
+endgenerate
|
|
|
//--------------------------------------------------------------------------------
|
|
|
// Software Gating
|
|
|
//--------------------------------------------------------------------------------
|
|
|
@@ -1332,6 +1416,8 @@ GatingMux
|
|
|
.IntTrig2_i (1'b0),
|
|
|
.PulseBus_i (pulseBus),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (gatingPulse)
|
|
|
);
|
|
|
@@ -1357,6 +1443,8 @@ SampleStrobeMux
|
|
|
.IntTrig2_i (1'b0),
|
|
|
.PulseBus_i (pulseBus),
|
|
|
.ExtPortsBus_i (Trig6to1_io),
|
|
|
+ .SlowMod_i (1'b0),
|
|
|
+ .FastMod_i (1'b0),
|
|
|
|
|
|
.MuxOut_o (sampleStrobe)
|
|
|
);
|