Jelajahi Sumber

Ввёл задержку отправки данных на LMX до полной отгрузки DDS

Anatoliy Chigirinskiy 1 tahun lalu
induk
melakukan
a67a4ec4ea

+ 1 - 1
src/constr/SbTmsg.sdc

@@ -7,7 +7,7 @@ create_clock -name clk5 -period 200 -waveform {0 100} [get_nets {clk5}]
 create_clock -name clk60 -period 16.667 -waveform {0 8.334} [get_nets {clk60}]
 create_clock -name Clk_i -period 41.667 -waveform {0 20.834} [get_ports {Clk_i}]
 create_clock -name Sck_i -period 10 -waveform {0 5} [get_ports {Sck_i}]
-//create_clock -name clk100 -period 10 -waveform {0 5} [get_nets {gclk100}]
+create_clock -name clk100 -period 10 -waveform {0 5} [get_nets {gclk100}]
 set_clock_groups -asynchronous -group [get_clocks {Clk_i}] -group [get_clocks {Sck_i}]
 set_false_path -from [get_clocks {Sck_i}] -to [get_clocks {Clk_i}] 
 set_false_path -from [get_clocks {Sck_i}] -to [get_clocks {Sck_i}] 

+ 4 - 0
src/src/Top/TopSbTmsg.v

@@ -197,6 +197,8 @@ localparam [11:0] FIRMWARE_VER	= 12'h1;
 
 	wire [23:0] servInfo;
 
+	wire ddsEmptyFlag;
+
 //================================================================================
 //  ASSIGNMENTS
 //================================================================================
@@ -450,6 +452,7 @@ LmxWrapper #(
 	.Data_i				(spiData),
 	.Val_i				(valLmxDataToFifo),
 	.LmxWordNum_i		(lmxWordNum),
+	.DdsSpiBusy_i		(ddsSpiBusy),
 	.LmxWordNumVal_i	(valWordNum),
 	.LmxDirectFlag_i	(flagDirectLmx),	
 	.PllVtuneCtrl_o		(PllVtuneCtrl_o),
@@ -473,6 +476,7 @@ DDSWrapper #(
 	.Data_i				(spiData),
 	.Val_i				(valDdsDataToFifo),
 	.DdsSyncFpga_o		(DdsSyncFpga_o),
+	.DdsSpiBusy_o		(ddsSpiBusy),
 	.Ss_o				(ddsCsSpiM),
 	.Sck_o				(ddsClkSpiM),
 	.Mosi_o				(ddsMosiSpiM)

+ 5 - 0
src/src/WrapFifoChain/DDSWrapper.v

@@ -31,6 +31,7 @@ module DDSWrapper #(
     input Val_i,
 
 	output reg DdsSyncFpga_o,
+	output DdsSpiBusy_o,
 
     output Ss_o,
     output Sck_o,
@@ -59,6 +60,10 @@ reg ssReg;
 reg ddsDirectFlagR;
 reg [2:0] ddsWordNumReg;
 reg [2:0] ddsWordNumRegSync;
+//================================================================================
+//	                                ASSIGNMENTS
+//================================================================================  
+assign DdsSpiBusy_o = busySpiMDds;
 //==========================================================================//
 //									CODING									//
 //==========================================================================//

+ 2 - 1
src/src/WrapFifoChain/LmxWrapper.v

@@ -30,6 +30,7 @@ module LmxWrapper #(
 	input [3:0] LmxWordNum_i,
 	input LmxDirectFlag_i,
 	input LmxWordNumVal_i,
+	input DdsSpiBusy_i,
 
 	output reg PllVtuneCtrl_o,
 
@@ -153,7 +154,7 @@ FifoCtrl #(
 	.Rst_i			(Rst_i),
 	.Data_i			(Data_i),
 	.Val_i			(Val_i),
-	.BusySpiM_i		(busySpiMLmx),
+	.BusySpiM_i		(busySpiMLmx | DdsSpiBusy_i),
 	.FifoFull_i		(lmxFifoFull),
 	.FifoEmpty_i	(lmxFifoEmpty),
 	.Data_o			(dataFromLmxFifoCtrl),