From 8e397fa41e02ecfeb80935204b5ef0cc1376d3d6 Mon Sep 17 00:00:00 2001 From: canisio Date: Thu, 2 Apr 2026 12:03:59 -0300 Subject: [PATCH] Added draft to TBm_chirp model. Added init function script to testbench --- chirp_block/TBm_chirp.slx | Bin 0 -> 130882 bytes chirp_block/soc_resm_init.m | 122 ++++++++++++++++++ .../-fBNH4Vym_CdCwpwYWJRhBbuhK0d.xml | 6 + .../-fBNH4Vym_CdCwpwYWJRhBbuhK0p.xml | 2 + .../ZmGHm4fO3sDsC61p0vEaNX3ZnB8d.xml | 6 + .../ZmGHm4fO3sDsC61p0vEaNX3ZnB8p.xml | 2 + 6 files changed, 138 insertions(+) create mode 100644 chirp_block/TBm_chirp.slx create mode 100644 chirp_block/soc_resm_init.m create mode 100644 resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0d.xml create mode 100644 resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0p.xml create mode 100644 resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8d.xml create mode 100644 resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8p.xml diff --git a/chirp_block/TBm_chirp.slx b/chirp_block/TBm_chirp.slx new file mode 100644 index 0000000000000000000000000000000000000000..d087b0fca4ed13bf980d3a9784a94679c77c0907 GIT binary patch literal 130882 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 CRR@p& literal 0 HcmV?d00001 diff --git a/chirp_block/soc_resm_init.m b/chirp_block/soc_resm_init.m new file mode 100644 index 0000000..2f475c3 --- /dev/null +++ b/chirp_block/soc_resm_init.m @@ -0,0 +1,122 @@ +%% Rate setup +fs = 4096e6; +Ts = 1/fs; + +%% Host Sample Time in Simulation +TsHost = 5e-5; + +SamplesPerCycle = 16; + +FPGAClkRate = fs/SamplesPerCycle; +TsFPGA = 1/FPGAClkRate; + +%% Channelizer parameters + +% Number of channels, maximally decimated channelizer M/D=1 +nChan = 128; + +% Taps per band +nTapsPerBand = 12; + +% Create channelizer object +channelizer = dsp.Channelizer('NumFrequencyBands',nChan,... + 'DecimationFactor',nChan,... + 'NumTapsPerBand',nTapsPerBand); +% Channelizer coefficients +channelizerCoeffs = channelizer.coeffs.Numerator; + +% Channel bandwidth +chanBW = fs/nChan; + +% Starting frequency for each channel +chanFStart = chanBW/2:chanBW:(fs/2-chanBW/2); + +% Number of frames out of channelzier +nFrames = nChan/SamplesPerCycle; + +% Frame size after serializing x2 +frameSize = SamplesPerCycle/2; + +%% Detection parameters + +% Moving average window length +movingAverageWindowLength = 64; + +% Moving average comparison offset +movingAverageCompareOffset = 32; + +% Threshold for ratio of current moving average to offset +thresholdScale = 500; +thresholdScaleDT = fixdt(1,18,-6); +thresholdScaleFi = fi(thresholdScale, thresholdScaleDT); + +%% Tx signal generator parameters + +% NCO accumulator word length +NCOAccumWL = 16; + +% NCO phase increment scale factor +NCOIncScale = Ts*2^NCOAccumWL; + +% NCO phase increments datatype +NCOIncDT = numerictype(1,NCOAccumWL,0); + +% NCO counter increment datatype +NCOCountIncDT = numerictype(1,NCOAccumWL*2,NCOAccumWL); + +%% Test signal parameters + +% Pulse width +pulseWidth = 8e-6; + +% Pulse start/end frequencies +pulseStartFreq = 1305e6; +pulseEndFreqOffset = 15e6; + +% Number of pulses +numPulses = 2; + +% Pulse repetition interval +PRI = 50e-6; + +% Output gain +pulseGenGain = 1; + +%% Capture parameters + +% Time to capture after a detection +captureDuration = 10e-6; +captureLength = round(captureDuration*chanBW); + +% Length of capture frame +% Contains I/Q data plus channel number and two words of timestamp +captureFrameLength = captureLength+3; + +% Max number of capture frames in a DMA packet +captureFramesPerPacket = 50; + +% Timeout to transfer a DMA packet if number of frames less than max +capturePacketTimeout = 1e-3; + +%% DMA parameters + +% DMA packet length +DMAPacketLength = captureFrameLength*captureFramesPerPacket; +DMAPacketSize = captureFrameLength*captureFramesPerPacket; + +% Number of DMA buffers +DMANumBuffers = 8; + +% DMA FIFO depth +DMAFIFODepth = 4096; + +%% Software parameters + +% Signal generator update rate +TsSW = 0.25; + +%% Simulation parameters + +% Sim run time +% stoptime = PRI*numPulses + 1e-3; +stoptime = PRI*captureFramesPerPacket + 1e-5; diff --git a/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0d.xml b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0d.xml new file mode 100644 index 0000000..99772b4 --- /dev/null +++ b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0d.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0p.xml b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0p.xml new file mode 100644 index 0000000..aaa3cc5 --- /dev/null +++ b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/-fBNH4Vym_CdCwpwYWJRhBbuhK0p.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8d.xml b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8d.xml new file mode 100644 index 0000000..99772b4 --- /dev/null +++ b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8d.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8p.xml b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8p.xml new file mode 100644 index 0000000..a4a7a81 --- /dev/null +++ b/resources/project/xNuMB6At47V-Cm15fF7d0FHblJo/ZmGHm4fO3sDsC61p0vEaNX3ZnB8p.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file