1、0 romSelectSwitching ;0 dutySelectSwitching ; output 7:0 romOut ;/*synthesis keep*/ wire 7:0 sineOut ;/*synthesis keep*/0 rectangleOut ;0 triangleOut ;0 sawtoothOut ; reg 8:0 address ; reg 7:0 romOut_r ;/*synthesis noprune*/ reg 1:0 flag ;/*synthesis noprune*/ parameter duty50 = 2b00 ; parameter dut
2、y25 = 2b01 ; parameter duty75 = 2b10 ; parameter high = 2d1 ; parameter low = 2d2 ; parameter normal = 2d3 ; sawtoothGenerator_ROM sawtoothGenerator_ROM_inst ( .address ( address ), .clock ( rom_clk ), .q ( sawtoothOut ) ); rectangleGenerator_ROM rectangleGenerator_ROM_inst ( .q ( rectangleOut) sine
3、Generator_ROM sineGenerator_ROM_inst ( .q ( sineOut ) triangleGenerator_ROM triangleGenerator_ROM_inst ( .q ( triangleOut ) always(posedge rom_clk or negedge rst_n) begin if(!rst_n) address = 9d0 ; end else case(dutySelectSwitching) duty25 : if(address = 9d511) else= address + 9 if(address d127) fla
4、g = high ;= low ; end duty75 :d383) default := normal ; endcase rst_n) romOut_r = 8 case(romSelectSwitching) 2b00 : begin romOut_r = sawtoothOut ;b01 : begin case(flag) normal := rectangleOut ; high :d255 ; low : endcaseb10 := sineOut ;b11 := triangleOut ; assign romOut = romOut_r ;endmodule 频率选择模块:
5、module frequencySelect( clk_50MHz , freqSelectSwitching , freqOut ) ; input clk_50MHz ;0 freqSelectSwitching ; output freqOut ; reg 25:0 cnt ;0 limit ; reg freqOut_r ; parameter div_2 = 26 parameter div_4 = 26 parameter div_8 = 26d7 ; always (posedge clk_50MHz or negedge rst_n) /generate 1Hz clock f
6、orm 50MHz clock cnt = 26 freqOut_r = clk_50MHz ; case(freqSelectSwitching) limit = div_2 ;= div_4 ;= div_8 ; if(cnt = limit) = !freqOut ;= cnt + 26= freqOut ; assign freqOut = freqOut_r ; 幅度选择模块:module amplitudeSelect( clk_50MHz , ampSelectSwitching , romOut , ampOut ) ;0 ampSelectSwitching ; input
7、7:0 ampOut ;0 ampOut_r ; always(posedge clk_50MHz or negedge rst_n) ampOut_r case(ampSelectSwitching) begin ampOut_r 1) ;2) ;3) ; begin ; assign ampOut = ampOut_r ;顶层文件:module LPMSignalTop( clk_50MHz , romSelectSwitching ,/sw9 8 sw5 4 freqSelectSwitching ,/sw7 6 sw3 2 dutySelectSwitching ,/sw7 6 amp
8、Out , ampSelectSwitching );/sw5 4 sw1 0 wire freqOut ; waveSelect waveSelect ( .rom_clk (freqOut ), .rst_n (rst_n ), .romSelectSwitching (romSelectSwitching ), .dutySelectSwitching (dutySelectSwitching), .romOut (romOut ); amplitudeSelect amplitudeSelect ( .clk_50MHz (clk_50MHz ), .ampSelectSwitchin
9、g (ampSelectSwitching ), .romOut (romOut ), .ampOut (ampOut ); frequencySelect frequencySelect ( .freqSelectSwitching (freqSelectSwitching ), .freqOut (freqOut );endmodule 引脚分配:set_location_assignment PIN_Y2 -to clk_50MHz set_location_assignment PIN_R24 -to rst_n set_location_assignment PIN_AB26 -to
10、 dutySelectSwitching1 set_location_assignment PIN_AD26 -to dutySelectSwitching0 set_location_assignment PIN_AC26 -to romSelectSwitching1 set_location_assignment PIN_AB27 -to romSelectSwitching0 set_location_assignment PIN_AD27 -to freqSelectSwitching1 set_location_assignment PIN_AC27 -to freqSelectS
11、witching0 set_location_assignment PIN_AC28 -to ampSelectSwitching1 set_location_assignment PIN_AB28 -to ampSelectSwitching0 set_location_assignment PIN_AB22 -to ampOut7 set_location_assignment PIN_AC15 -to ampOut6 set_location_assignment PIN_AB21 -to ampOut5 set_location_assignment PIN_Y17 -to ampOu
12、t4 set_location_assignment PIN_AC21 -to ampOut3 set_location_assignment PIN_Y16 -to ampOut2 set_location_assignment PIN_AD21 -to ampOut1 set_location_assignment PIN_AE16 -to ampOut0)实验波形图4-1 原始锯齿波图4-2 频率不变,幅度减为1/2的锯齿波图4-3 频率不变,幅度减为1/4的锯齿波图4-4 频率不变,幅度减为1/8的锯齿波图4-5 幅度不变,二分频的锯齿波图4-6 幅度不变,四分频的锯齿波图4-7 幅度
13、不变,八分频的锯齿波图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 幅度不变,四分频的正弦波
14、图4-23 幅度不变,八分频的正弦波图4-24 原始三角波图4-25 频率不变,幅度减为1/2的三角波图4-26 频率不变,幅度减为1/4的三角波图4-27 频率不变,幅度减为1/8的三角波图4-28 幅度不变,二分频的三角波图4-29 幅度不变,四分频的三角波图4-30 幅度不变,八分频的三角波(五)实验效果设置了两个拨动开关romSelectSwitching01(SW6、SW7)用于选择四类波形,锯齿波、方波、正弦波、三角波;设置了两个拨动开关freqSelectSwitching01(SW4、SW5)用于选择频率,原始频率、二分频、四分频、八分频;设置了两个拨动开关ampSelectS
15、witching01(SW2、SW3)用于选择幅度,原始幅度、1/2幅度、1/4幅度、1/8幅度;设置了两个拨动开关dutySelectSwitching01(SW0、SW1)用于在输出方波的情况下,改变波形的占空比,输出占空比为25%、75%的矩形波。实测实验效果见下表,与设计要求一致。序号SW7SW6SW5SW4SW3SW2SW1SW0结果1原始锯齿波21/2幅度锯齿波31/4幅度锯齿波41/8幅度锯齿波5二分频锯齿波6四分频锯齿波7八分频锯齿波8原始方波91/2幅度方波101/4幅度方波111/8幅度方波12二分频方波13四分频方波14八分频方波15占空比25%矩形波16占空比75%矩形波17原始正弦波181/2幅度正弦波19201/8幅度正弦波21二分频正弦波22四分频正弦波23八分频正弦波24原始三角波251/2幅度三角波261/4幅度三角波271/8幅度三角波28二分频三角波29四分频三角波30八分频三角波
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1