01 DDS

一、工作原理

DDS(Direct Digital Synthesis)直接数字合成,常当成是信号发生器。通过matlab生成 2n 个点的正弦波查找表,波形数据保存在txt文本中。

二、matlab产生波形数据

这里是生成1024点正弦波数据,那么在区间(0,2π)内,每隔 2π/(1024-1)取一个值。

clear all
close all
clc

N  = 1024;%1024点一个正弦周期
Q  = 32;  %量化32bit

t =0:2*pi/(N-1):2*pi;
sin_dds = sin(t);
Maxb = max(abs(sin_dds));
Qb=round((sin_dds/Maxb)*(2^(Q-1)-1));

fidQb= fopen('wave.txt','w');
fprintf(fidQb,'wire signed [31:0] dds_rom[0:%d];\n',N-1); 
for i=1:length(Qb)
    fprintf(fidQb,'assign dds_rom[%d]=%d;\n',i-1,Qb(i)); 
end
fclose(fidQb);

figure,
hold on
plot(t,sin_dds,'*');
legend('sin');
grid;
hold off

figure,
hold on
plot(t,Qb,'*');
legend('sin');
grid;
hold off
View Code

 

 还有一个正弦波波形的数据:

三、综合代码

module dds_rom(
input sys_clk,
input [9:0]sin_addr,//地址数就是有多少个点,这里是1024
output signed[31:0]sin,//正弦波波形数据格式是32位
output signed[31:0]cos
);

wire signed[31:0]rom[0:1023];
wire [9:0]cos_addr;
assign cos_addr=sin_addr+10'd256;
assign sin=rom[sin_addr];
assign cos=rom[cos_addr];

assign rom[0]=0;
assign rom[1]=13189608;
assign rom[2]=26378718;
assign rom[3]=39566833;
assign rom[4]=52753456;
assign rom[5]=65938088;
assign rom[6]=79120233;
assign rom[7]=92299394;
assign rom[8]=105475073;
assign rom[9]=118646772;
assign rom[10]=131813997;
assign rom[11]=144976248;
assign rom[12]=158133031;
assign rom[13]=171283849;
assign rom[14]=184428205;
assign rom[15]=197565604;
assign rom[16]=210695550;
assign rom[17]=223817548;
assign rom[18]=236931103;
assign rom[19]=250035720;
assign rom[20]=263130905;
assign rom[21]=276216164;
assign rom[22]=289291003;
assign rom[23]=302354930;
assign rom[24]=315407450;
assign rom[25]=328448072;
assign rom[26]=341476305;
assign rom[27]=354491656;
assign rom[28]=367493634;
assign rom[29]=380481749;
assign rom[30]=393455512;
assign rom[31]=406414432;
assign rom[32]=419358020;
assign rom[33]=432285790;
assign rom[34]=445197252;
assign rom[35]=458091920;
assign rom[36]=470969307;
assign rom[37]=483828928;
assign rom[38]=496670297;
assign rom[39]=509492931;
assign rom[40]=522296345;
assign rom[41]=535080056;
assign rom[42]=547843582;
assign rom[43]=560586442;
assign rom[44]=573308155;
assign rom[45]=586008241;
assign rom[46]=598686221;
assign rom[47]=611341617;
assign rom[48]=623973951;
assign rom[49]=636582747;
assign rom[50]=649167528;
assign rom[51]=661727822;
assign rom[52]=674263153;
assign rom[53]=686773048;
assign rom[54]=699257037;
assign rom[55]=711714647;
assign rom[56]=724145409;
assign rom[57]=736548855;
assign rom[58]=748924515;
assign rom[59]=761271924;
assign rom[60]=773590615;
assign rom[61]=785880124;
assign rom[62]=798139987;
assign rom[63]=810369741;
assign rom[64]=822568927;
assign rom[65]=834737082;
assign rom[66]=846873748;
assign rom[67]=858978468;
assign rom[68]=871050785;
assign rom[69]=883090242;
assign rom[70]=895096387;
assign rom[71]=907068766;
assign rom[72]=919006928;
assign rom[73]=930910422;
assign rom[74]=942778799;
assign rom[75]=954611611;
assign rom[76]=966408413;
assign rom[77]=978168759;
assign rom[78]=989892205;
assign rom[79]=1001578310;
assign rom[80]=1013226631;
assign rom[81]=1024836731;
assign rom[82]=1036408171;
assign rom[83]=1047940514;
assign rom[84]=1059433326;
assign rom[85]=1070886173;
assign rom[86]=1082298622;
assign rom[87]=1093670244;
assign rom[88]=1105000610;
assign rom[89]=1116289291;
assign rom[90]=1127535862;
assign rom[91]=1138739900;
assign rom[92]=1149900980;
assign rom[93]=1161018683;
assign rom[94]=1172092589;
assign rom[95]=1183122279;
assign rom[96]=1194107339;
assign rom[97]=1205047353;
assign rom[98]=1215941909;
assign rom[99]=1226790596;
assign rom[100]=1237593005;
assign rom[101]=1248348728;
assign rom[102]=1259057359;
assign rom[103]=1269718495;
assign rom[104]=1280331733;
assign rom[105]=1290896673;
assign rom[106]=1301412917;
assign rom[107]=1311880067;
assign rom[108]=1322297729;
assign rom[109]=1332665510;
assign rom[110]=1342983019;
assign rom[111]=1353249866;
assign rom[112]=1363465664;
assign rom[113]=1373630029;
assign rom[114]=1383742575;
assign rom[115]=1393802923;
assign rom[116]=1403810692;
assign rom[117]=1413765506;
assign rom[118]=1423666987;
assign rom[119]=1433514764;
assign rom[120]=1443308464;
assign rom[121]=1453047717;
assign rom[122]=1462732158;
assign rom[123]=1472361420;
assign rom[124]=1481935139;
assign rom[125]=1491452956;
assign rom[126]=1500914510;
assign rom[127]=1510319445;
assign rom[128]=1519667407;
assign rom[129]=1528958041;
assign rom[130]=1538190999;
assign rom[131]=1547365932;
assign rom[132]=1556482493;
assign rom[133]=1565540339;
assign rom[134]=1574539127;
assign rom[135]=1583478520;
assign rom[136]=1592358178;
assign rom[137]=1601177768;
assign rom[138]=1609936957;
assign rom[139]=1618635414;
assign rom[140]=1627272811;
assign rom[141]=1635848822;
assign rom[142]=1644363124;
assign rom[143]=1652815396;
assign rom[144]=1661205318;
assign rom[145]=1669532574;
assign rom[146]=1677796851;
assign rom[147]=1685997836;
assign rom[148]=1694135220;
assign rom[149]=1702208696;
assign rom[150]=1710217959;
assign rom[151]=1718162708;
assign rom[152]=1726042642;
assign rom[153]=1733857465;
assign rom[154]=1741606881;
assign rom[155]=1749290598;
assign rom[156]=1756908327;
assign rom[157]=1764459780;
assign rom[158]=1771944672;
assign rom[159]=1779362721;
assign rom[160]=1786713647;
assign rom[161]=1793997172;
assign rom[162]=1801213022;
assign rom[163]=1808360925;
assign rom[164]=1815440611;
assign rom[165]=1822451813;
assign rom[166]=1829394267;
assign rom[167]=1836267710;
assign rom[168]=1843071884;
assign rom[169]=1849806531;
assign rom[170]=1856471398;
assign rom[171]=1863066233;
assign rom[172]=1869590787;
assign rom[173]=1876044815;
assign rom[174]=1882428072;
assign rom[175]=1888740319;
assign rom[176]=1894981316;
assign rom[177]=1901150829;
assign rom[178]=1907248625;
assign rom[179]=1913274473;
assign rom[180]=1919228147;
assign rom[181]=1925109422;
assign rom[182]=1930918075;
assign rom[183]=1936653889;
assign rom[184]=1942316645;
assign rom[185]=1947906132;
assign rom[186]=1953422138;
assign rom[187]=1958864454;
assign rom[188]=1964232876;
assign rom[189]=1969527202;
assign rom[190]=1974747230;
assign rom[191]=1979892765;
assign rom[192]=1984963613;
assign rom[193]=1989959581;
assign rom[194]=1994880482;
assign rom[195]=1999726130;
assign rom[196]=2004496343;
assign rom[197]=2009190939;
assign rom[198]=2013809743;
assign rom[199]=2018352579;
assign rom[200]=2022819277;
assign rom[201]=2027209668;
assign rom[202]=2031523587;
assign rom[203]=2035760870;
assign rom[204]=2039921358;
assign rom[205]=2044004894;
assign rom[206]=2048011324;
assign rom[207]=2051940496;
assign rom[208]=2055792263;
assign rom[209]=2059566479;
assign rom[210]=2063263002;
assign rom[211]=2066881693;
assign rom[212]=2070422414;
assign rom[213]=2073885032;
assign rom[214]=2077269417;
assign rom[215]=2080575442;
assign rom[216]=2083802980;
assign rom[217]=2086951911;
assign rom[218]=2090022116;
assign rom[219]=2093013479;
assign rom[220]=2095925886;
assign rom[221]=2098759229;
assign rom[222]=2101513401;
assign rom[223]=2104188297;
assign rom[224]=2106783816;
assign rom[225]=2109299861;
assign rom[226]=2111736337;
assign rom[227]=2114093151;
assign rom[228]=2116370216;
assign rom[229]=2118567444;
assign rom[230]=2120684754;
assign rom[231]=2122722064;
assign rom[232]=2124679300;
assign rom[233]=2126556385;
assign rom[234]=2128353251;
assign rom[235]=2130069828;
assign rom[236]=2131706053;
assign rom[237]=2133261863;
assign rom[238]=2134737200;
assign rom[239]=2136132008;
assign rom[240]=2137446235;
assign rom[241]=2138679831;
assign rom[242]=2139832749;
assign rom[243]=2140904945;
assign rom[244]=2141896381;
assign rom[245]=2142807017;
assign rom[246]=2143636821;
assign rom[247]=2144385759;
assign rom[248]=2145053805;
assign rom[249]=2145640933;
assign rom[250]=2146147121;
assign rom[251]=2146572349;
assign rom[252]=2146916602;
assign rom[253]=2147179867;
assign rom[254]=2147362133;
assign rom[255]=2147463395;
assign rom[256]=2147483647;
assign rom[257]=2147422890;
assign rom[258]=2147281125;
assign rom[259]=2147058358;
assign rom[260]=2146754598;
assign rom[261]=2146369856;
assign rom[262]=2145904146;
assign rom[263]=2145357485;
assign rom[264]=2144729895;
assign rom[265]=2144021400;
assign rom[266]=2143232025;
assign rom[267]=2142361801;
assign rom[268]=2141410761;
assign rom[269]=2140378940;
assign rom[270]=2139266377;
assign rom[271]=2138073115;
assign rom[272]=2136799197;
assign rom[273]=2135444674;
assign rom[274]=2134009594;
assign rom[275]=2132494014;
assign rom[276]=2130897989;
assign rom[277]=2129221580;
assign rom[278]=2127464850;
assign rom[279]=2125627866;
assign rom[280]=2123710696;
assign rom[281]=2121713414;
assign rom[282]=2119636094;
assign rom[283]=2117478815;
assign rom[284]=2115241658;
assign rom[285]=2112924707;
assign rom[286]=2110528051;
assign rom[287]=2108051779;
assign rom[288]=2105495985;
assign rom[289]=2102860765;
assign rom[290]=2100146218;
assign rom[291]=2097352448;
assign rom[292]=2094479559;
assign rom[293]=2091527660;
assign rom[294]=2088496862;
assign rom[295]=2085387279;
assign rom[296]=2082199029;
assign rom[297]=2078932233;
assign rom[298]=2075587012;
assign rom[299]=2072163494;
assign rom[300]=2068661808;
assign rom[301]=2065082085;
assign rom[302]=2061424461;
assign rom[303]=2057689074;
assign rom[304]=2053876065;
assign rom[305]=2049985576;
assign rom[306]=2046017757;
assign rom[307]=2041972755;
assign rom[308]=2037850723;
assign rom[309]=2033651818;
assign rom[310]=2029376197;
assign rom[311]=2025024022;
assign rom[312]=2020595456;
assign rom[313]=2016090668;
assign rom[314]=2011509826;
assign rom[315]=2006853104;
assign rom[316]=2002120677;
assign rom[317]=1997312724;
assign rom[318]=1992429427;
assign rom[319]=1987470969;
assign rom[320]=1982437537;
assign rom[321]=1977329322;
assign rom[322]=1972146515;
assign rom[323]=1966889314;
assign rom[324]=1961557915;
assign rom[325]=1956152520;
assign rom[326]=1950673333;
assign rom[327]=1945120561;
assign rom[328]=1939494412;
assign rom[329]=1933795100;
assign rom[330]=1928022840;
assign rom[331]=1922177848;
assign rom[332]=1916260346;
assign rom[333]=1910270557;
assign rom[334]=1904208706;
assign rom[335]=1898075023;
assign rom[336]=1891869739;
assign rom[337]=1885593087;
assign rom[338]=1879245305;
assign rom[339]=1872826632;
assign rom[340]=1866337311;
assign rom[341]=1859777585;
assign rom[342]=1853147703;
assign rom[343]=1846447914;
assign rom[344]=1839678472;
assign rom[345]=1832839631;
assign rom[346]=1825931650;
assign rom[347]=1818954790;
assign rom[348]=1811909312;
assign rom[349]=1804795484;
assign rom[350]=1797613574;
assign rom[351]=1790363852;
assign rom[352]=1783046591;
assign rom[353]=1775662069;
assign rom[354]=1768210564;
assign rom[355]=1760692356;
assign rom[356]=1753107729;
assign rom[357]=1745456970;
assign rom[358]=1737740367;
assign rom[359]=1729958211;
assign rom[360]=1722110795;
assign rom[361]=1714198417;
assign rom[362]=1706221373;
assign rom[363]=1698179965;
assign rom[364]=1690074497;
assign rom[365]=1681905274;
assign rom[366]=1673672605;
assign rom[367]=1665376799;
assign rom[368]=1657018170;
assign rom[369]=1648597034;
assign rom[370]=1640113707;
assign rom[371]=1631568510;
assign rom[372]=1622961765;
assign rom[373]=1614293798;
assign rom[374]=1605564934;
assign rom[375]=1596775503;
assign rom[376]=1587925837;
assign rom[377]=1579016269;
assign rom[378]=1570047136;
assign rom[379]=1561018777;
assign rom[380]=1551931530;
assign rom[381]=1542785740;
assign rom[382]=1533581752;
assign rom[383]=1524319912;
assign rom[384]=1515000570;
assign rom[385]=1505624077;
assign rom[386]=1496190788;
assign rom[387]=1486701058;
assign rom[388]=1477155245;
assign rom[389]=1467553709;
assign rom[390]=1457896812;
assign rom[391]=1448184919;
assign rom[392]=1438418396;
assign rom[393]=1428597612;
assign rom[394]=1418722936;
assign rom[395]=1408794742;
assign rom[396]=1398813404;
assign rom[397]=1388779298;
assign rom[398]=1378692803;
assign rom[399]=1368554300;
assign rom[400]=1358364170;
assign rom[401]=1348122799;
assign rom[402]=1337830573;
assign rom[403]=1327487879;
assign rom[404]=1317095109;
assign rom[405]=1306652653;
assign rom[406]=1296160907;
assign rom[407]=1285620265;
assign rom[408]=1275031126;
assign rom[409]=1264393889;
assign rom[410]=1253708955;
assign rom[411]=1242976727;
assign rom[412]=1232197611;
assign rom[413]=1221372012;
assign rom[414]=1210500339;
assign rom[415]=1199583002;
assign rom[416]=1188620414;
assign rom[417]=1177612987;
assign rom[418]=1166561137;
assign rom[419]=1155465280;
assign rom[420]=1144325836;
assign rom[421]=1133143224;
assign rom[422]=1121917867;
assign rom[423]=1110650187;
assign rom[424]=1099340611;
assign rom[425]=1087989564;
assign rom[426]=1076597474;
assign rom[427]=1065164772;
assign rom[428]=1053691889;
assign rom[429]=1042179257;
assign rom[430]=1030627311;
assign rom[431]=1019036486;
assign rom[432]=1007407221;
assign rom[433]=995739953;
assign rom[434]=984035122;
assign rom[435]=972293171;
assign rom[436]=960514541;
assign rom[437]=948699679;
assign rom[438]=936849028;
assign rom[439]=924963036;
assign rom[440]=913042152;
assign rom[441]=901086826;
assign rom[442]=889097507;
assign rom[443]=877074649;
assign rom[444]=865018705;
assign rom[445]=852930130;
assign rom[446]=840809380;
assign rom[447]=828656912;
assign rom[448]=816473184;
assign rom[449]=804258656;
assign rom[450]=792013790;
assign rom[451]=779739046;
assign rom[452]=767434888;
assign rom[453]=755101780;
assign rom[454]=742740187;
assign rom[455]=730350576;
assign rom[456]=717933414;
assign rom[457]=705489169;
assign rom[458]=693018310;
assign rom[459]=680521309;
assign rom[460]=667998637;
assign rom[461]=655450766;
assign rom[462]=642878169;
assign rom[463]=630281321;
assign rom[464]=617660696;
assign rom[465]=605016772;
assign rom[466]=592350024;
assign rom[467]=579660932;
assign rom[468]=566949972;
assign rom[469]=554217626;
assign rom[470]=541464372;
assign rom[471]=528690693;
assign rom[472]=515897070;
assign rom[473]=503083986;
assign rom[474]=490251924;
assign rom[475]=477401369;
assign rom[476]=464532804;
assign rom[477]=451646715;
assign rom[478]=438743590;
assign rom[479]=425823913;
assign rom[480]=412888173;
assign rom[481]=399936857;
assign rom[482]=386970455;
assign rom[483]=373989455;
assign rom[484]=360994347;
assign rom[485]=347985621;
assign rom[486]=334963768;
assign rom[487]=321929279;
assign rom[488]=308882646;
assign rom[489]=295824361;
assign rom[490]=282754917;
assign rom[491]=269674806;
assign rom[492]=256584522;
assign rom[493]=243484559;
assign rom[494]=230375412;
assign rom[495]=217257573;
assign rom[496]=204131539;
assign rom[497]=190997805;
assign rom[498]=177856865;
assign rom[499]=164709216;
assign rom[500]=151555354;
assign rom[501]=138395775;
assign rom[502]=125230975;
assign rom[503]=112061451;
assign rom[504]=98887700;
assign rom[505]=85710218;
assign rom[506]=72529503;
assign rom[507]=59346052;
assign rom[508]=46160362;
assign rom[509]=32972931;
assign rom[510]=19784256;
assign rom[511]=6594835;
assign rom[512]=-6594835;
assign rom[513]=-19784256;
assign rom[514]=-32972931;
assign rom[515]=-46160362;
assign rom[516]=-59346052;
assign rom[517]=-72529503;
assign rom[518]=-85710218;
assign rom[519]=-98887700;
assign rom[520]=-112061451;
assign rom[521]=-125230975;
assign rom[522]=-138395775;
assign rom[523]=-151555354;
assign rom[524]=-164709216;
assign rom[525]=-177856865;
assign rom[526]=-190997805;
assign rom[527]=-204131539;
assign rom[528]=-217257573;
assign rom[529]=-230375412;
assign rom[530]=-243484559;
assign rom[531]=-256584522;
assign rom[532]=-269674806;
assign rom[533]=-282754917;
assign rom[534]=-295824361;
assign rom[535]=-308882646;
assign rom[536]=-321929279;
assign rom[537]=-334963768;
assign rom[538]=-347985621;
assign rom[539]=-360994347;
assign rom[540]=-373989455;
assign rom[541]=-386970455;
assign rom[542]=-399936857;
assign rom[543]=-412888173;
assign rom[544]=-425823913;
assign rom[545]=-438743590;
assign rom[546]=-451646715;
assign rom[547]=-464532804;
assign rom[548]=-477401369;
assign rom[549]=-490251924;
assign rom[550]=-503083986;
assign rom[551]=-515897070;
assign rom[552]=-528690693;
assign rom[553]=-541464372;
assign rom[554]=-554217626;
assign rom[555]=-566949972;
assign rom[556]=-579660932;
assign rom[557]=-592350024;
assign rom[558]=-605016772;
assign rom[559]=-617660696;
assign rom[560]=-630281321;
assign rom[561]=-642878169;
assign rom[562]=-655450766;
assign rom[563]=-667998637;
assign rom[564]=-680521309;
assign rom[565]=-693018310;
assign rom[566]=-705489169;
assign rom[567]=-717933414;
assign rom[568]=-730350576;
assign rom[569]=-742740187;
assign rom[570]=-755101780;
assign rom[571]=-767434888;
assign rom[572]=-779739046;
assign rom[573]=-792013790;
assign rom[574]=-804258656;
assign rom[575]=-816473184;
assign rom[576]=-828656912;
assign rom[577]=-840809380;
assign rom[578]=-852930130;
assign rom[579]=-865018705;
assign rom[580]=-877074649;
assign rom[581]=-889097507;
assign rom[582]=-901086826;
assign rom[583]=-913042152;
assign rom[584]=-924963036;
assign rom[585]=-936849028;
assign rom[586]=-948699679;
assign rom[587]=-960514541;
assign rom[588]=-972293171;
assign rom[589]=-984035122;
assign rom[590]=-995739953;
assign rom[591]=-1007407221;
assign rom[592]=-1019036486;
assign rom[593]=-1030627311;
assign rom[594]=-1042179257;
assign rom[595]=-1053691889;
assign rom[596]=-1065164772;
assign rom[597]=-1076597474;
assign rom[598]=-1087989564;
assign rom[599]=-1099340611;
assign rom[600]=-1110650187;
assign rom[601]=-1121917867;
assign rom[602]=-1133143224;
assign rom[603]=-1144325836;
assign rom[604]=-1155465280;
assign rom[605]=-1166561137;
assign rom[606]=-1177612987;
assign rom[607]=-1188620414;
assign rom[608]=-1199583002;
assign rom[609]=-1210500339;
assign rom[610]=-1221372012;
assign rom[611]=-1232197611;
assign rom[612]=-1242976727;
assign rom[613]=-1253708955;
assign rom[614]=-1264393889;
assign rom[615]=-1275031126;
assign rom[616]=-1285620265;
assign rom[617]=-1296160907;
assign rom[618]=-1306652653;
assign rom[619]=-1317095109;
assign rom[620]=-1327487879;
assign rom[621]=-1337830573;
assign rom[622]=-1348122799;
assign rom[623]=-1358364170;
assign rom[624]=-1368554300;
assign rom[625]=-1378692803;
assign rom[626]=-1388779298;
assign rom[627]=-1398813404;
assign rom[628]=-1408794742;
assign rom[629]=-1418722936;
assign rom[630]=-1428597612;
assign rom[631]=-1438418396;
assign rom[632]=-1448184919;
assign rom[633]=-1457896812;
assign rom[634]=-1467553709;
assign rom[635]=-1477155245;
assign rom[636]=-1486701058;
assign rom[637]=-1496190788;
assign rom[638]=-1505624077;
assign rom[639]=-1515000570;
assign rom[640]=-1524319912;
assign rom[641]=-1533581752;
assign rom[642]=-1542785740;
assign rom[643]=-1551931530;
assign rom[644]=-1561018777;
assign rom[645]=-1570047136;
assign rom[646]=-1579016269;
assign rom[647]=-1587925837;
assign rom[648]=-1596775503;
assign rom[649]=-1605564934;
assign rom[650]=-1614293798;
assign rom[651]=-1622961765;
assign rom[652]=-1631568510;
assign rom[653]=-1640113707;
assign rom[654]=-1648597034;
assign rom[655]=-1657018170;
assign rom[656]=-1665376799;
assign rom[657]=-1673672605;
assign rom[658]=-1681905274;
assign rom[659]=-1690074497;
assign rom[660]=-1698179965;
assign rom[661]=-1706221373;
assign rom[662]=-1714198417;
assign rom[663]=-1722110795;
assign rom[664]=-1729958211;
assign rom[665]=-1737740367;
assign rom[666]=-1745456970;
assign rom[667]=-1753107729;
assign rom[668]=-1760692356;
assign rom[669]=-1768210564;
assign rom[670]=-1775662069;
assign rom[671]=-1783046591;
assign rom[672]=-1790363852;
assign rom[673]=-1797613574;
assign rom[674]=-1804795484;
assign rom[675]=-1811909312;
assign rom[676]=-1818954790;
assign rom[677]=-1825931650;
assign rom[678]=-1832839631;
assign rom[679]=-1839678472;
assign rom[680]=-1846447914;
assign rom[681]=-1853147703;
assign rom[682]=-1859777585;
assign rom[683]=-1866337311;
assign rom[684]=-1872826632;
assign rom[685]=-1879245305;
assign rom[686]=-1885593087;
assign rom[687]=-1891869739;
assign rom[688]=-1898075023;
assign rom[689]=-1904208706;
assign rom[690]=-1910270557;
assign rom[691]=-1916260346;
assign rom[692]=-1922177848;
assign rom[693]=-1928022840;
assign rom[694]=-1933795100;
assign rom[695]=-1939494412;
assign rom[696]=-1945120561;
assign rom[697]=-1950673333;
assign rom[698]=-1956152520;
assign rom[699]=-1961557915;
assign rom[700]=-1966889314;
assign rom[701]=-1972146515;
assign rom[702]=-1977329322;
assign rom[703]=-1982437537;
assign rom[704]=-1987470969;
assign rom[705]=-1992429427;
assign rom[706]=-1997312724;
assign rom[707]=-2002120677;
assign rom[708]=-2006853104;
assign rom[709]=-2011509826;
assign rom[710]=-2016090668;
assign rom[711]=-2020595456;
assign rom[712]=-2025024022;
assign rom[713]=-2029376197;
assign rom[714]=-2033651818;
assign rom[715]=-2037850723;
assign rom[716]=-2041972755;
assign rom[717]=-2046017757;
assign rom[718]=-2049985576;
assign rom[719]=-2053876065;
assign rom[720]=-2057689074;
assign rom[721]=-2061424461;
assign rom[722]=-2065082085;
assign rom[723]=-2068661808;
assign rom[724]=-2072163494;
assign rom[725]=-2075587012;
assign rom[726]=-2078932233;
assign rom[727]=-2082199029;
assign rom[728]=-2085387279;
assign rom[729]=-2088496862;
assign rom[730]=-2091527660;
assign rom[731]=-2094479559;
assign rom[732]=-2097352448;
assign rom[733]=-2100146218;
assign rom[734]=-2102860765;
assign rom[735]=-2105495985;
assign rom[736]=-2108051779;
assign rom[737]=-2110528051;
assign rom[738]=-2112924707;
assign rom[739]=-2115241658;
assign rom[740]=-2117478815;
assign rom[741]=-2119636094;
assign rom[742]=-2121713414;
assign rom[743]=-2123710696;
assign rom[744]=-2125627866;
assign rom[745]=-2127464850;
assign rom[746]=-2129221580;
assign rom[747]=-2130897989;
assign rom[748]=-2132494014;
assign rom[749]=-2134009594;
assign rom[750]=-2135444674;
assign rom[751]=-2136799197;
assign rom[752]=-2138073115;
assign rom[753]=-2139266377;
assign rom[754]=-2140378940;
assign rom[755]=-2141410761;
assign rom[756]=-2142361801;
assign rom[757]=-2143232025;
assign rom[758]=-2144021400;
assign rom[759]=-2144729895;
assign rom[760]=-2145357485;
assign rom[761]=-2145904146;
assign rom[762]=-2146369856;
assign rom[763]=-2146754598;
assign rom[764]=-2147058358;
assign rom[765]=-2147281125;
assign rom[766]=-2147422890;
assign rom[767]=-2147483647;
assign rom[768]=-2147463395;
assign rom[769]=-2147362133;
assign rom[770]=-2147179867;
assign rom[771]=-2146916602;
assign rom[772]=-2146572349;
assign rom[773]=-2146147121;
assign rom[774]=-2145640933;
assign rom[775]=-2145053805;
assign rom[776]=-2144385759;
assign rom[777]=-2143636821;
assign rom[778]=-2142807017;
assign rom[779]=-2141896381;
assign rom[780]=-2140904945;
assign rom[781]=-2139832749;
assign rom[782]=-2138679831;
assign rom[783]=-2137446235;
assign rom[784]=-2136132008;
assign rom[785]=-2134737200;
assign rom[786]=-2133261863;
assign rom[787]=-2131706053;
assign rom[788]=-2130069828;
assign rom[789]=-2128353251;
assign rom[790]=-2126556385;
assign rom[791]=-2124679300;
assign rom[792]=-2122722064;
assign rom[793]=-2120684754;
assign rom[794]=-2118567444;
assign rom[795]=-2116370216;
assign rom[796]=-2114093151;
assign rom[797]=-2111736337;
assign rom[798]=-2109299861;
assign rom[799]=-2106783816;
assign rom[800]=-2104188297;
assign rom[801]=-2101513401;
assign rom[802]=-2098759229;
assign rom[803]=-2095925886;
assign rom[804]=-2093013479;
assign rom[805]=-2090022116;
assign rom[806]=-2086951911;
assign rom[807]=-2083802980;
assign rom[808]=-2080575442;
assign rom[809]=-2077269417;
assign rom[810]=-2073885032;
assign rom[811]=-2070422414;
assign rom[812]=-2066881693;
assign rom[813]=-2063263002;
assign rom[814]=-2059566479;
assign rom[815]=-2055792263;
assign rom[816]=-2051940496;
assign rom[817]=-2048011324;
assign rom[818]=-2044004894;
assign rom[819]=-2039921358;
assign rom[820]=-2035760870;
assign rom[821]=-2031523587;
assign rom[822]=-2027209668;
assign rom[823]=-2022819277;
assign rom[824]=-2018352579;
assign rom[825]=-2013809743;
assign rom[826]=-2009190939;
assign rom[827]=-2004496343;
assign rom[828]=-1999726130;
assign rom[829]=-1994880482;
assign rom[830]=-1989959581;
assign rom[831]=-1984963613;
assign rom[832]=-1979892765;
assign rom[833]=-1974747230;
assign rom[834]=-1969527202;
assign rom[835]=-1964232876;
assign rom[836]=-1958864454;
assign rom[837]=-1953422138;
assign rom[838]=-1947906132;
assign rom[839]=-1942316645;
assign rom[840]=-1936653889;
assign rom[841]=-1930918075;
assign rom[842]=-1925109422;
assign rom[843]=-1919228147;
assign rom[844]=-1913274473;
assign rom[845]=-1907248625;
assign rom[846]=-1901150829;
assign rom[847]=-1894981316;
assign rom[848]=-1888740319;
assign rom[849]=-1882428072;
assign rom[850]=-1876044815;
assign rom[851]=-1869590787;
assign rom[852]=-1863066233;
assign rom[853]=-1856471398;
assign rom[854]=-1849806531;
assign rom[855]=-1843071884;
assign rom[856]=-1836267710;
assign rom[857]=-1829394267;
assign rom[858]=-1822451813;
assign rom[859]=-1815440611;
assign rom[860]=-1808360925;
assign rom[861]=-1801213022;
assign rom[862]=-1793997172;
assign rom[863]=-1786713647;
assign rom[864]=-1779362721;
assign rom[865]=-1771944672;
assign rom[866]=-1764459780;
assign rom[867]=-1756908327;
assign rom[868]=-1749290598;
assign rom[869]=-1741606881;
assign rom[870]=-1733857465;
assign rom[871]=-1726042642;
assign rom[872]=-1718162708;
assign rom[873]=-1710217959;
assign rom[874]=-1702208696;
assign rom[875]=-1694135220;
assign rom[876]=-1685997836;
assign rom[877]=-1677796851;
assign rom[878]=-1669532574;
assign rom[879]=-1661205318;
assign rom[880]=-1652815396;
assign rom[881]=-1644363124;
assign rom[882]=-1635848822;
assign rom[883]=-1627272811;
assign rom[884]=-1618635414;
assign rom[885]=-1609936957;
assign rom[886]=-1601177768;
assign rom[887]=-1592358178;
assign rom[888]=-1583478520;
assign rom[889]=-1574539127;
assign rom[890]=-1565540339;
assign rom[891]=-1556482493;
assign rom[892]=-1547365932;
assign rom[893]=-1538190999;
assign rom[894]=-1528958041;
assign rom[895]=-1519667407;
assign rom[896]=-1510319445;
assign rom[897]=-1500914510;
assign rom[898]=-1491452956;
assign rom[899]=-1481935139;
assign rom[900]=-1472361420;
assign rom[901]=-1462732158;
assign rom[902]=-1453047717;
assign rom[903]=-1443308464;
assign rom[904]=-1433514764;
assign rom[905]=-1423666987;
assign rom[906]=-1413765506;
assign rom[907]=-1403810692;
assign rom[908]=-1393802923;
assign rom[909]=-1383742575;
assign rom[910]=-1373630029;
assign rom[911]=-1363465664;
assign rom[912]=-1353249866;
assign rom[913]=-1342983019;
assign rom[914]=-1332665510;
assign rom[915]=-1322297729;
assign rom[916]=-1311880067;
assign rom[917]=-1301412917;
assign rom[918]=-1290896673;
assign rom[919]=-1280331733;
assign rom[920]=-1269718495;
assign rom[921]=-1259057359;
assign rom[922]=-1248348728;
assign rom[923]=-1237593005;
assign rom[924]=-1226790596;
assign rom[925]=-1215941909;
assign rom[926]=-1205047353;
assign rom[927]=-1194107339;
assign rom[928]=-1183122279;
assign rom[929]=-1172092589;
assign rom[930]=-1161018683;
assign rom[931]=-1149900980;
assign rom[932]=-1138739900;
assign rom[933]=-1127535862;
assign rom[934]=-1116289291;
assign rom[935]=-1105000610;
assign rom[936]=-1093670244;
assign rom[937]=-1082298622;
assign rom[938]=-1070886173;
assign rom[939]=-1059433326;
assign rom[940]=-1047940514;
assign rom[941]=-1036408171;
assign rom[942]=-1024836731;
assign rom[943]=-1013226631;
assign rom[944]=-1001578310;
assign rom[945]=-989892205;
assign rom[946]=-978168759;
assign rom[947]=-966408413;
assign rom[948]=-954611611;
assign rom[949]=-942778799;
assign rom[950]=-930910422;
assign rom[951]=-919006928;
assign rom[952]=-907068766;
assign rom[953]=-895096387;
assign rom[954]=-883090242;
assign rom[955]=-871050785;
assign rom[956]=-858978468;
assign rom[957]=-846873748;
assign rom[958]=-834737082;
assign rom[959]=-822568927;
assign rom[960]=-810369741;
assign rom[961]=-798139987;
assign rom[962]=-785880124;
assign rom[963]=-773590615;
assign rom[964]=-761271924;
assign rom[965]=-748924515;
assign rom[966]=-736548855;
assign rom[967]=-724145409;
assign rom[968]=-711714647;
assign rom[969]=-699257037;
assign rom[970]=-686773048;
assign rom[971]=-674263153;
assign rom[972]=-661727822;
assign rom[973]=-649167528;
assign rom[974]=-636582747;
assign rom[975]=-623973951;
assign rom[976]=-611341617;
assign rom[977]=-598686221;
assign rom[978]=-586008241;
assign rom[979]=-573308155;
assign rom[980]=-560586442;
assign rom[981]=-547843582;
assign rom[982]=-535080056;
assign rom[983]=-522296345;
assign rom[984]=-509492931;
assign rom[985]=-496670297;
assign rom[986]=-483828928;
assign rom[987]=-470969307;
assign rom[988]=-458091920;
assign rom[989]=-445197252;
assign rom[990]=-432285790;
assign rom[991]=-419358020;
assign rom[992]=-406414432;
assign rom[993]=-393455512;
assign rom[994]=-380481749;
assign rom[995]=-367493634;
assign rom[996]=-354491656;
assign rom[997]=-341476305;
assign rom[998]=-328448072;
assign rom[999]=-315407450;
assign rom[1000]=-302354930;
assign rom[1001]=-289291003;
assign rom[1002]=-276216164;
assign rom[1003]=-263130905;
assign rom[1004]=-250035720;
assign rom[1005]=-236931103;
assign rom[1006]=-223817548;
assign rom[1007]=-210695550;
assign rom[1008]=-197565604;
assign rom[1009]=-184428205;
assign rom[1010]=-171283849;
assign rom[1011]=-158133031;
assign rom[1012]=-144976248;
assign rom[1013]=-131813997;
assign rom[1014]=-118646772;
assign rom[1015]=-105475073;
assign rom[1016]=-92299394;
assign rom[1017]=-79120233;
assign rom[1018]=-65938088;
assign rom[1019]=-52753456;
assign rom[1020]=-39566833;
assign rom[1021]=-26378718;
assign rom[1022]=-13189608;
assign rom[1023]=0;

endmodule 
View Code

四、仿真代码及仿真结果

这里设时钟是22.144,那么根据奈奎斯特理论,这里的采样频率需要44。

`timescale 1ns/1ps
module tb_dds();

parameter kHz=44;//根据奈奎斯特理论 只有采样频率高于原始信号最高频率的两倍时 才能把正弦波波形对应的数据还原成为原来波形

reg sys_clk;
reg [9:0]sin_addr;
wire signed[31:0]sin;
wire signed[31:0]cos;

initial begin
sys_clk=0;
#313333 sys_clk=0;
end
always #11.072 sys_clk=~sys_clk;

reg sys_rst_n;
initial begin
sys_rst_n=1;
#10000 sys_rst_n=0;
#100000 sys_rst_n=1;
end

//相位积累控制器
reg [9:0]cnt;
always @(posedge sys_clk or negedge sys_rst_n) begin
  if(!sys_rst_n) begin
      sin_addr <= 0;
      cnt  <= 0;
    end
  else if(cnt == kHz-1) begin
    cnt <= 0;
    sin_addr <= sin_addr +10'd1;
  end
  else begin
    cnt <= cnt + 1;
    sin_addr <= sin_addr;
  end
end


dds_rom u_dds_rom(
.sys_clk (sys_clk),
.sin_addr (sin_addr),
.sin (sin),
.cos (cos)
);
endmodule 

 

 

posted @ 2021-01-04 01:31  LiYiRui  阅读(393)  评论(0编辑  收藏  举报