实验六 LPM信号发生器Word下载.docx
《实验六 LPM信号发生器Word下载.docx》由会员分享,可在线阅读,更多相关《实验六 LPM信号发生器Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
0]romSelectSwitching;
0]dutySelectSwitching;
output[7:
0]romOut;
/*synthesiskeep*/
wire[7:
0]sineOut;
/*synthesiskeep*/
0]rectangleOut;
0]triangleOut;
0]sawtoothOut;
reg[8:
0]address;
reg[7:
0]romOut_r;
/*synthesisnoprune*/
reg[1:
0]flag;
/*synthesisnoprune*/
parameterduty50=2'
b00;
parameterduty25=2'
b01;
parameterduty75=2'
b10;
parameterhigh=2'
d1;
parameterlow=2'
d2;
parameternormal=2'
d3;
sawtoothGenerator_ROMsawtoothGenerator_ROM_inst(
.address(address),
.clock(rom_clk),
.q(sawtoothOut)
);
rectangleGenerator_ROMrectangleGenerator_ROM_inst(
.q(rectangleOut)
sineGenerator_ROMsineGenerator_ROM_inst(
.q(sineOut)
triangleGenerator_ROMtriangleGenerator_ROM_inst(
.q(triangleOut)
always@(posedgerom_clkornegedgerst_n)
begin
if(!
rst_n)
address<
=9'
d0;
end
else
case(dutySelectSwitching)
duty25:
if(address==9'
d511)
else
=address+9'
if(address<
d127)
flag<
=high;
=low;
end
duty75:
d383)
default:
=normal;
endcase
rst_n)
romOut_r<
=8'
case(romSelectSwitching)
2'
b00:
beginromOut_r<
=sawtoothOut;
b01:
begin
case(flag)
normal:
=rectangleOut;
high:
d255;
low:
endcase
b10:
=sineOut;
b11:
=triangleOut;
assignromOut=romOut_r;
endmodule
频率选择模块:
modulefrequencySelect(clk_50MHz,
freqSelectSwitching,
freqOut);
inputclk_50MHz;
0]freqSelectSwitching;
outputfreqOut;
reg[25:
0]cnt;
0]limit;
regfreqOut_r;
parameterdiv_2=26'
parameterdiv_4=26'
parameterdiv_8=26'
d7;
always@(posedgeclk_50MHzornegedgerst_n)//generate1Hzclockform50MHzclock
cnt<
=26'
freqOut_r<
=clk_50MHz;
case(freqSelectSwitching)
limit<
=div_2;
=div_4;
=div_8;
if(cnt==limit)
=!
freqOut;
=cnt+26'
=freqOut;
assignfreqOut=freqOut_r;
幅度选择模块:
moduleamplitudeSelect(clk_50MHz,
ampSelectSwitching,
romOut,
ampOut);
0]ampSelectSwitching;
input[7:
0]ampOut;
0]ampOut_r;
always@(posedgeclk_50MHzornegedgerst_n)
ampOut_r<
case(ampSelectSwitching)
beginampOut_r<
=romOut;
=(romOut>
>
1);
2);
3);
begin;
assignampOut=ampOut_r;
顶层文件:
moduleLPMSignalTop(clk_50MHz,
romSelectSwitching,//sw98sw54
freqSelectSwitching,//sw76sw32
dutySelectSwitching,//sw76
ampOut,
ampSelectSwitching);
//sw54sw10
wirefreqOut;
waveSelectwaveSelect(
.rom_clk(freqOut),
.rst_n(rst_n),
.romSelectSwitching(romSelectSwitching),
.dutySelectSwitching(dutySelectSwitching),
.romOut(romOut));
amplitudeSelectamplitudeSelect(
.clk_50MHz(clk_50MHz),
.ampSelectSwitching(ampSelectSwitching),
.romOut(romOut),
.ampOut(ampOut));
frequencySelectfrequencySelect(
.freqSelectSwitching(freqSelectSwitching),
.freqOut(freqOut));
endmodule
引脚分配:
set_location_assignmentPIN_Y2-toclk_50MHz
set_location_assignmentPIN_R24-torst_n
set_location_assignmentPIN_AB26-todutySelectSwitching[1]
set_location_assignmentPIN_AD26-todutySelectSwitching[0]
set_location_assignmentPIN_AC26-toromSelectSwitching[1]
set_location_assignmentPIN_AB27-toromSelectSwitching[0]
set_location_assignmentPIN_AD27-tofreqSelectSwitching[1]
set_location_assignmentPIN_AC27-tofreqSelectSwitching[0]
set_location_assignmentPIN_AC28-toampSelectSwitching[1]
set_location_assignmentPIN_AB28-toampSelectSwitching[0]
set_location_assignmentPIN_AB22-toampOut[7]
set_location_assignmentPIN_AC15-toampOut[6]
set_location_assignmentPIN_AB21-toampOut[5]
set_location_assignmentPIN_Y17-toampOut[4]
set_location_assignmentPIN_AC21-toampOut[3]
set_location_assignmentPIN_Y16-toampOut[2]
set_location_assignmentPIN_AD21-toampOut[1]
set_location_assignmentPIN_AE16-toampOut[0]
)实验波形
图4-1原始锯齿波
图4-2频率不变,幅度减为1/2的锯齿波
图4-3频率不变,幅度减为1/4的锯齿波
图4-4频率不变,幅度减为1/8的锯齿波
图4-5幅度不变,二分频的锯齿波
图4-6幅度不变,四分频的锯齿波
图4-7幅度不变,八分频的锯齿波
图4-8原始方波
图4-9频率不变,幅度减为1/2的锯齿波
图4-10频率不变,幅度减为1/4的锯齿波
图4-11频率不变,幅度减为1/8的锯齿波
图4-12幅度不变,二分频的方波
图4-13幅度不变,四分频的方波
图4-14幅度不变,八分频的方波
图4-15频率、幅度不变,占空比改为25%的矩形波
图4-16频率、幅度不变,占空比改为75%的矩形波
图4-17原始正弦波
图4-18频率不变,幅度减为1/2的正弦波
图4-19频率不变,幅度减为1/4的正弦波
图4-20频率不变,幅度减为1/8的正弦波
图4-21幅度不变,二分频的正弦波
图4-22幅度不变,四分频的正弦波
图4-23幅度不变,八分频的正弦波
图4-24原始三角波
图4-25频率不变,幅度减为1/2的三角波
图4-26频率不变,幅度减为1/4的三角波
图4-27频率不变,幅度减为1/8的三角波
图4-28幅度不变,二分频的三角波
图4-29幅度不变,四分频的三角波
图4-30幅度不变,八分频的三角波
(五)实验效果
设置了两个拨动开关romSelectSwitching[0][1](SW6、SW7)用于选择四类波形,锯齿波、方波、正弦波、三角波;
设置了两个拨动开关freqSelectSwitching[0][1](SW4、SW5)用于选择频率,原始频率、二分频、四分频、八分频;
设置了两个拨动开关ampSelectSwitching[0][1](SW2、SW3)用于选择幅度,原始幅度、1/2幅度、1/4幅度、1/8幅度;
设置了两个拨动开关dutySelectSwitching[0][1](SW0、SW1)用于在输出方波的情况下,改变波形的占空比,输出占空比为25%、75%的矩形波。
实测实验效果见下表,与设计要求一致。
序号
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
结果
1
原始锯齿波
2
1/2幅度锯齿波
3
1/4幅度锯齿波
4
1/8幅度锯齿波
5
二分频锯齿波
6
四分频锯齿波
7
八分频锯齿波
8
原始方波
9
1/2幅度方波
10
1/4幅度方波
11
1/8幅度方波
12
二分频方波
13
四分频方波
14
八分频方波
15
占空比25%矩形波
16
占空比75%矩形波
17
原始正弦波
18
1/2幅度正弦波
19
20
1/8幅度正弦波
21
二分频正弦波
22
四分频正弦波
23
八分频正弦波
24
原始三角波
25
1/2幅度三角波
26
1/4幅度三角波
27
1/8幅度三角波
28
二分频三角波
29
四分频三角波
30
八分频三角波