Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.naic.edu/~phil/hardware/pdev/fpga/gx/sp/src/testsig.v
Дата изменения: Thu Jun 26 04:27:55 2008
Дата индексирования: Sat Sep 6 19:59:41 2008
Кодировка:

Поисковые слова: релятивистское движение

// Jeff Mock
// 2030 Gough St.
// San Francisco, CA 94109
// jeff@mock.com
//
// Copyright 2005,2006
//
// $URL: https://www.mock.com/svn/pdev/trunk/gx/sp/src/testsig.v $
// $Id: testsig.v 729 2006-11-20 03:41:20Z jeff $

// Test signal for hardware diagnostics
//

module testsig (
ck,
reset,

obs_start,
creg_ts_freq,
creg_ts_phase,
creg_ts_cw_a,
creg_ts_cw_b,
creg_ts_noise_a,
creg_ts_noise_b,

ts_ar,
ts_ai,
ts_br,
ts_bi
);

input ck;
input reset;

input obs_start;
input [31:0] creg_ts_freq;
input [15:0] creg_ts_phase;
input [15:0] creg_ts_cw_a;
input [15:0] creg_ts_cw_b;
input [15:0] creg_ts_noise_a;
input [15:0] creg_ts_noise_b;

output [`N_ADC-1:0] ts_ar;
output [`N_ADC-1:0] ts_ai;
output [`N_ADC-1:0] ts_br;
output [`N_ADC-1:0] ts_bi;

reg [31:0] acc;
reg zero;
always @(posedge ck) begin
if (reset)
zero <= 1'b1;
else if (obs_start)
zero <= 1'b0;

if (reset | obs_start)
acc <= 32'd0;
else
acc <= acc + {1'b0, creg_ts_freq[30:0]};
end

reg [31:0] phasea;
reg [31:0] phaseb;
always @(posedge ck) begin
phasea <= acc;
phaseb <= acc + {creg_ts_phase, 16'b0};
end

ts_chan chan_a (
.ck ( ck ),
.reset ( reset ),
.obs_start ( obs_start ),
.zero ( zero ),
.phase ( phasea[31:23] ),
.seed ( 16'hf298 ),

.creg_ts_freq ( creg_ts_freq ),
.creg_ts_cw ( creg_ts_cw_a ),
.creg_ts_noise ( creg_ts_noise_a ),

.ts_r ( ts_ar ),
.ts_i ( ts_ai )
);
ts_chan chan_b (
.ck ( ck ),
.reset ( reset ),
.obs_start ( obs_start ),
.zero ( zero ),
.phase ( phaseb[31:23] ),
.seed ( 16'h23a1 ),

.creg_ts_freq ( creg_ts_freq ),
.creg_ts_cw ( creg_ts_cw_b ),
.creg_ts_noise ( creg_ts_noise_b ),

.ts_r ( ts_br ),
.ts_i ( ts_bi )
);
endmodule