用verilog写的正弦波发生器.docx
《用verilog写的正弦波发生器.docx》由会员分享,可在线阅读,更多相关《用verilog写的正弦波发生器.docx(42页珍藏版)》请在冰豆网上搜索。
用verilog写的正弦波发生器
modulesin(clk,rst_n,clock_1,addr_div_1,sin_data);
inputclk;
inputrst_n;
output[9:
0]sin_data;
output[9:
0]addr_div_1;
//output[9:
0]addr_div;
outputclock_1;
wireclock;
wire[9:
0]addr_div;
wire[9:
0]address;
wire[9:
0]line;
//wire[7:
0]q;
//wire[9:
0]cnt_temp;
divU1(
.clk(clk),
.rst_n(rst_n),
.clock_1(clock_1),
.clock(clock)
);
counterU2(
.clock(clock),
.rst_n(rst_n),
.addr_div_1(addr_div_1),
.addr_div(line)
);
sinwaveU3(
.clock(clock),
.address(line),
.q(sin_data)
);
endmodule
modulediv(clk,rst_n,clock,clock_1);
inputclk;
inputrst_n;
outputclock;
outputclock_1;
reg[9:
0]count;
reg[9:
0]count_temp;
always@(posedgeclkornegedgerst_n)
begin
if(!
rst_n)
begin
count<=10'd0;
count_temp=0;
end
elseif(count==10'd24)
begin
count<=10'd0;
count_temp<=~count_temp;
end
else
begin
count<=count+10'd1;
end
end
wireclock,clock_1;
assignclock=count_temp;
assignclock_1=count_temp;
endmodule
modulecounter(clock,rst_n,addr_div,addr_div_1);
inputclock;
inputrst_n;
output[9:
0]addr_div;
output[9:
0]addr_div_1;
reg[9:
0]cnt;
reg[9:
0]cnt_temp;
always@(posedgeclockornegedgerst_n)
if(!
rst_n)
cnt<=10'd0;
elseif(cnt==10'd1023)cnt<=10'd0;
else
cnt<=cnt+10'd1;
always@(posedgeclockornegedgerst_n)
if(!
rst_n)
cnt_temp<=10'd0;
elseif(cnt==10'd1023)
cnt_temp<=10'd0;
else
cnt_temp<=cnt;
wire[9:
0]addr_div,addr_div_1;
assignaddr_div=cnt_temp;
assignaddr_div_1=cnt_temp;
endmodule
//正弦波形数据,做ROM用
WIDTH=10;
DEPTH=1024;
ADDRESS_RADIX=UNS;
DATA_RADIX=UNS;
CONTENTBEGIN
0:
511;
1:
514;
2:
517;
3:
520;
4:
524;
5:
527;
6:
530;
7:
533;
8:
536;
9:
539;
10:
542;
11:
545;
12:
549;
13:
552;
14:
555;
15:
558;
16:
561;
17:
564;
18:
567;
19:
570;
20:
574;
21:
577;
22:
580;
23:
583;
24:
586;
25:
589;
26:
592;
27:
595;
28:
598;
29:
602;
30:
605;
31:
608;
32:
611;
33:
614;
34:
617;
35:
620;
36:
623;
37:
626;
38:
629;
39:
632;
40:
635;
41:
638;
42:
641;
43:
644;
44:
647;
45:
650;
46:
653;
47:
656;
48:
659;
49:
662;
50:
665;
51:
668;
52:
671;
53:
674;
54:
677;
55:
680;
56:
683;
57:
686;
58:
689;
59:
692;
60:
695;
61:
698;
62:
701;
63:
704;
64:
707;
65:
710;
66:
713;
67:
715;
68:
718;
69:
721;
70:
724;
71:
727;
72:
730;
73:
733;
74:
735;
75:
738;
76:
741;
77:
744;
78:
747;
79:
749;
80:
752;
81:
755;
82:
758;
83:
760;
84:
763;
85:
766;
86:
769;
87:
771;
88:
774;
89:
777;
90:
779;
91:
782;
92:
785;
93:
787;
94:
790;
95:
793;
96:
795;
97:
798;
98:
800;
99:
803;
100:
806;
101:
808;
102:
811;
103:
813;
104:
816;
105:
818;
106:
821;
107:
823;
108:
826;
109:
828;
110:
831;
111:
833;
112:
835;
113:
838;
114:
840;
115:
843;
116:
845;
117:
847;
118:
850;
119:
852;
120:
855;
121:
857;
122:
859;
123:
861;
124:
864;
125:
866;
126:
868;
127:
870;
128:
873;
129:
875;
130:
877;
131:
879;
132:
881;
133:
884;
134:
886;
135:
888;
136:
890;
137:
892;
138:
894;
139:
896;
140:
898;
141:
900;
142:
902;
143:
904;
144:
906;
145:
908;
146:
910;
147:
912;
148:
914;
149:
916;
150:
918;
151:
920;
152:
922;
153:
924;
154:
926;
155:
927;
156:
929;
157:
931;
158:
933;
159:
935;
160:
936;
161:
938;
162:
940;
163:
941;
164:
943;
165:
945;
166:
946;
167:
948;
168:
950;
169:
951;
170:
953;
171:
954;
172:
956;
173:
958;
174:
959;
175:
961;
176:
962;
177:
964;
178:
965;
179:
966;
180:
968;
181:
969;
182:
971;
183:
972;
184:
973;
185:
975;
186:
976;
187:
977;
188:
979;
189:
980;
190:
981;
191:
982;
192:
984;
193:
985;
194:
986;
195:
987;
196:
988;
197:
989;
198:
990;
199:
992;
200:
993;
201:
994;
202:
995;
203:
996;
204:
997;
205:
998;
206:
999;
207:
1000;
208:
1000;
209:
1001;
210:
1002;
211:
1003;
212:
1004;
213:
1005;
214:
1006;
215:
1006;
216:
1007;
217:
1008;
218:
1009;
219:
1009;
220:
1010;
221:
1011;
222:
1011;
223:
1012;
224:
1013;
225:
1013;
226:
1014;
227:
1014;
228:
1015;
229:
1015;
230:
1016;
231:
1016;
232:
1017;
233:
1017;
234:
1018;
235:
1018;
236:
1019;
237:
1019;
238:
1019;
239:
1020;
240:
1020;
241:
1020;
242:
1021;
243:
1021;
244:
1021;
245:
1021;
246:
1022;
247:
1022;
248:
1022;
249:
1022;
250:
1022;
251:
1022;
252:
1022;
253:
1022;
254:
1022;
255:
1022;
256:
1023;
257:
1022;
258:
1022;
259:
1022;
260:
1022;
261:
1022;
262:
1022;
263:
1022;
264:
1022;
265:
1022;
266:
1022;
267:
1021;
268:
1021;
269:
1021;
270:
1021;
271:
1020;
272:
1020;
273:
1020;
274:
1019;
275:
1019;
276:
1019;
277:
1018;
278:
1018;
279:
1017;
280:
1017;
281:
1016;
282:
1016;
283:
1015;
284:
1015;
285:
1014;
286:
1014;
287:
1013;
288:
1013;
289:
1012;
290:
1011;
291:
1011;
292:
1010;
293:
1009;
294:
1009;
295:
1008;
296:
1007;
297:
1006;
298:
1006;
299:
1005;
300:
1004;
301:
1003;
302:
1002;
303:
1001;
304:
1000;
305:
1000;
306:
999;
307:
998;
308:
997;
309:
996;
310:
995;
311:
994;
312:
993;
313:
992;
314:
990;
315:
989;
316:
988;
317:
987;
318:
986;
319:
985;
320:
984;
321:
982;
322:
981;
323:
980;
324:
979;
325:
977;
326:
976;
327:
975;
328:
973;
329:
972;
330:
971;
331:
969;
332:
968;
333:
966;
334:
965;
335:
964;
336:
962;
337:
961;
338:
959;
339:
958;
340:
956;
341:
954;
342:
953;
343:
951;
344:
950;
345:
948;
346:
946;
347:
945;
348:
943;
349:
941;
350:
940;
351:
938;
352:
936;
353:
935;
354:
933;
355:
931;
356:
929;
357:
927;
358:
926;
359:
924;
360:
922;
361:
920;
362:
918;
363:
916;
364:
914;
365:
912;
366:
910;
367:
908;
368:
906;
369:
904;
370:
902;
371:
900;
372:
898;
373:
896;
374:
894;
375:
892;
376:
890;
377:
888;
378:
886;
379:
884;
380:
881;
381:
879;
382:
877;
383:
875;
384:
873;
385:
870;
386:
868;
387:
866;
388:
864;
389:
861;
390:
859;
391:
857;
392:
855;
393:
852;
394:
850;
395:
847;
396:
845;
397:
843;
398:
840;
399:
838;
400:
835;
401:
833;
402:
831;
403:
828;
404:
826;
405:
823;
406:
821;
407:
818;
408:
816;
409:
813;
410:
811;
411:
808;
412:
806;
413:
803;
414:
800;
415:
798;
416:
795;
417:
793;
418:
790;
419:
787;
420:
785;
421:
782;
422:
779;
423:
777;
424:
774;
425:
771;
426:
769;
427:
766;
428:
763;
429:
760;
430:
758;
431:
755;
432:
752;
433:
749;
434:
747;
435:
744;
436:
741;
437:
738;
438:
735;
439:
733;
440:
730;
441:
727;
442:
724;
443:
721;
444:
718;
445:
715;
446:
713;
447:
710;
448:
707;
449:
704;
450:
701;
451:
698;
452:
695;
453:
692;
454:
689;
455:
686;
456:
683;
457:
680;
458:
677;
459:
674;
460:
671;
461:
668;
462:
665;
463:
662;
464:
659;
465:
656;
466:
653;
467:
650;
468:
647;
469:
644;
470:
641;
471:
638;
472:
635;
473:
632;
474:
629;
475:
626;
476:
623;
477:
620;
478:
617;
479:
614;
480:
611;
481:
608;
482:
605;
483:
602;
484:
598;
485:
595;
486:
592;
487:
589;
488:
586;
489:
583;
490:
580;
491:
577;
492:
574;
493:
570;
494:
567;
495:
564;
496:
561;
497:
558;
498:
555;
499:
552;
500:
549;
501:
545;
502:
542;
503:
539;
504:
536;
505:
533;
506:
530;
507:
527;
508:
524;
509:
520;
510:
517;
511:
514;
512:
511;
513:
508;
514:
505;
515:
502;
516:
498;
517:
495;
518:
492;
519:
489;
520:
486;
521:
483;
522:
480;
523:
477;
524:
473;
525:
470;
526:
467;
527:
464;
528:
461;
529:
458;
530:
455;
531:
452;
532:
448;
533:
445;
534:
442;
535:
439;
536:
436;
537:
433;
538:
430;
539:
427;
540:
424;
541:
420;
542:
417;
543:
414;
544:
411;
545:
408;
546:
405;
547:
402;
548:
399;
549:
396;
550:
393;
551:
390;
552:
387;
553:
384;
554:
381;
555:
378;
556:
375;
557:
372;
558:
369;
559:
366;
560:
363;
561:
360;
562:
357;
563:
354;
564:
351;
565:
348;
566:
345;
567:
342;
568:
339;
569:
336;
570:
333;
571:
330;
572:
327;
573:
324;
574:
321;
575:
318;
576:
315;
577:
312;
578:
309;
579:
307;
580:
304;
581:
301;
582:
298;
583:
295;
584:
292;
585:
289;
586:
287;
587:
284;
588:
281;
589:
278;
590:
275;
591:
273;
592:
270;
593:
267;
594:
264;
595:
262;
596:
259;
597:
256;
598:
253;
599:
251;
600:
248;
601:
245;
602:
243;
603:
240;
604:
237;
605:
235;
606:
232;
607:
229;
608:
227;
609:
224;
610:
222;
611:
219;
612:
216;
613:
214;
614:
211;
615:
209;
616:
206;
617:
204;
618:
201;
619:
199;
620:
196;
621:
194;
622:
191;
623:
189;
624:
187;
625:
184;
626:
182;
627:
179;
628:
177;
629:
175;
630:
172;
631:
170;
632:
167;
633:
165;
634:
163;
635:
161;
636:
158;
637:
156;
6