📄 workone.v
字号:
module TopLayer
(
/* 启动信号,系统时钟及待测信号输入 */
Reset,
MeasureStart,
SysClock,
WaveInOne,
WaveInTwo,
/* 频率和相位差预置及调节输入 */
Select,
Increase,
Decrease,
Double,
Halve,
/* 测量数据输出 */
ReadClock,
DataOut,
ReadyFlag,
LeadFlag,
/* DDS正弦波输出 */
ClockOut,
WaveOutOne,
WaveOutTwo,
/* BUS方向选择输出 */
U4Dir,
U5Dir,
U6Dir,
U7Dir,
U9Dir,
U10Dir,
U11Dir,
/* 指示灯输出 */
LED0,
LED1,
LED2,
LED3
);
(* chip_pin = "134" *) input Reset;
(* chip_pin = "132" *)input MeasureStart;
(* chip_pin = "17" *)input SysClock;
(* chip_pin = "62" *)input WaveInOne;
(* chip_pin = "47" *)input WaveInTwo;
//(* chip_pin = "27" *)input Select;
//(* chip_pin = "31" *)input Increase;
//(* chip_pin = "34" *)input Decrease;
//(* chip_pin = "36" *)input Double;
//(* chip_pin = "38" *)input Halve;
//(* chip_pin = "40" *)input ReadClock;
(* chip_pin = "140" *)input Select;
(* chip_pin = "142" *)input Increase;
(* chip_pin = "144" *)input Decrease;
(* chip_pin = "3" *)input Double;
(* chip_pin = "6" *)input Halve;
(* chip_pin = "10" *)input ReadClock;
//(* chip_pin = "141" *)output DataOut;
(* chip_pin = "141" *)output DataOut;
(* chip_pin = "139" *)output ReadyFlag;
(* chip_pin = "143" *)output LeadFlag;
//(* chip_pin = "28" *)output ClockOut;
(* chip_pin = "28" *)output ClockOut;
(* chip_pin = "77, 75, 73, 71, 96, 91, 84, 82, 78, 76, 74, 72" *)output [11:0] WaveOutOne;
(* chip_pin = "79, 83, 85, 94, 113, 111, 109, 107, 105, 103, 99, 97" *)output [11:0] WaveOutTwo;
(* chip_pin = "49" *)output U4Dir;
(* chip_pin = "48" *)output U5Dir;
(* chip_pin = "37" *)output U6Dir;
(* chip_pin = "41" *)output U7Dir;
(* chip_pin = "35" *)output U9Dir;
(* chip_pin = "33" *)output U10Dir;
(* chip_pin = "42" *)output U11Dir;
(* chip_pin = "1" *)output LED0;
(* chip_pin = "5" *)output LED1;
(* chip_pin = "11" *)output LED2;
(* chip_pin = "32" *)output LED3;
//input Reset;
//input MeasureStart;
//input SysClock;
//input WaveInOne;
//input WaveInTwo;
//input Select;
//input Increase;
//input Decrease;
//input Double;
//input Halve;
//input ReadClock;
//output DataOut;
//output ReadyFlag;
//output LeadFlag;
//output ClockOut;
//output [11:0] WaveOutOne;
//output [11:0] WaveOutTwo;
//output U4Dir;
//output U5Dir;
//output U6Dir;
//output U7Dir;
//output U9Dir;
//output U10Dir;
//output U11Dir;
//output LED0;
//output LED1;
//output LED2;
//output LED3;
//reg rLED3;
//assign LED3 = rLED3;
//always @ (posedge ReadClock)
//begin
// rLED3 <= ~rLED3;
//end
/* 指定BUS方向 */
assign U4Dir = 1;
assign U5Dir = 1;
assign U6Dir = 1;
assign U7Dir = 0;
assign U9Dir = 1;
assign U10Dir = 1;
assign U11Dir = 0;
/* 调节输出信号的频率和相位差 */
wire [9:0] OutFrequency;
wire [8:0] OutPhase;
Adjust AdjustU0(.Reset(Reset),
.ScanClcok(SysClock),
.Select(Select),
.Increase(Increase),
.Decrease(Decrease),
.Double(Double),
.Halve(Halve),
.SetFrequency(OutFrequency),
.SetPhase(OutPhase),
.IndicatorLight(LED2)
);
/* 数值变换 */
wire [21:0] OutFrequencyKey;
wire [9:0] OutPhaseKey;
Adapter AdapterU0(.Clock(SysClock),
.FrequencySet(OutFrequency),
.PhaseSet(OutPhase),
.FrequencyKey(OutFrequencyKey),
.PhaseKey(OutPhaseKey)
);
/* 产生两路正弦波 */
DDS DDSU0(.Clock(SysClock),
.FrequencyKey(OutFrequencyKey),
.PhaseKey(OutPhaseKey),
.ClockOut(ClockOut),
.WaveOutOne(WaveOutOne),
.WaveOutTwo(WaveOutTwo)
);
/* 相位超前检测 */
DFF PhasaeLeadJudge(.d(WaveInOne),
.clk(WaveInTwo),
.clrn(1),
.prn(1),
.q(LeadFlag)
);
///* 倍频系统时钟 */
//wire SysClockPLL;
//PLL PLLU0(.inclk0(SysClock),
// .c0(SysClockPLL)
// );
/* 数据测量 */
wire [31:0] FreClockCounter;
wire [31:0] FreWaveCounter;
wire [31:0] PhaseClockCounter;
wire [31:0] PhaseWaveCounter;
wire CountFinishFlag;
wire TopClear;
Measure MeasureU0(.Reset(Reset),
.Start(MeasureStart),
//.Clock(SysClockPLL),
.Clock(SysClock),
.InputWaveOne(WaveInOne),
.InputWaveTwo(WaveInTwo),
.FreClockCounter(FreClockCounter),
.FreWaveCounter(FreWaveCounter),
.PhaseClockCounter(PhaseClockCounter),
.PhaseWaveCounter(PhaseWaveCounter),
.CountFinishFlag(CountFinishFlag),
.IndicatorLight(LED1),
.IndicatorLightB(LED3)
);
/* 数据输出 */
Read ReadU0(.Reset(Reset),
.StoreFlag(CountFinishFlag),
.MeasureStart(MeasureStart),
.SourceDataOne(FreClockCounter),
.SourceDataTwo(FreWaveCounter),
.SourceDataThree(PhaseClockCounter),
.SourceDataFour(PhaseWaveCounter),
// .SourceDataOne(32'hffffffff),
// .SourceDataTwo(32'hffffffff),
// .SourceDataThree(32'hffffffff),
// .SourceDataFour(32'hffffffff),
.ReadClock(ReadClock),
.OutBit(DataOut),
.ReadyFlag(ReadyFlag),
.IndicatorLight(LED0)
);
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -