这里通过两种方式来实现FPGA查表生成正弦波
先看图
这是FPGA通过查ROM表生成正弦波的原理

下面开始介绍具体实现方法:
这里我使用的开发板是MAX10 10M50DAFC7G,不同的开发板接口可能不同,注意查找对应资料,正确连接端口。

一:通过.v文件调用,根据地址直接查表生成所需的正弦波

通过此种方式获取.v文件可以使用软件编程的方式,常见的有c、MATLAB等等,这里通过MATLAB代码来实现.v文件数据的生成。

%generater sin table no negtive number
len = 512;
ow = 8;
iw = round(log2(len));
x = round((sin(0:2*pi/len:(2*pi-2*pi/len))+1)*(2^(ow-1)-1));
fid = fopen('sin_table_test.v','w');
fprintf(fid,'module sin_table(\n');
fprintf(fid,'  input [%d:0]address,\n',iw-1);
fprintf(fid,'  output reg[%d:0]data\n',ow-1);
fprintf(fid,'   );\n');
fprintf(fid,'always @(*)\n');
fprintf(fid,'begin\n');
fprintf(fid,'    case(address)\n');
for k=1:lenif(x(k)<0)fprintf(fid,'        %d''d%d: data <= -%d''d%d;\n',iw,k-1,ow,x(k)*-1);elsefprintf(fid,'        %d''d%d: data <= %d''d%d;\n',iw,k-1,ow,x(k));endend
fprintf(fid,'    endcase\n');
fprintf(fid,'end\n');
fprintf(fid,'endmodule\n');
fclose(fid);

通过MATLAB软件运行后可以生成.v文件,打开文件,内容如下:

module sin_table_test(input [8:0]address,output reg[7:0]data);
always @(*)
begincase(address)9'd0: data <= 8'd127;9'd1: data <= 8'd129;9'd2: data <= 8'd130;9'd3: data <= 8'd132;9'd4: data <= 8'd133;9'd5: data <= 8'd135;9'd6: data <= 8'd136;9'd7: data <= 8'd138;9'd8: data <= 8'd139;9'd9: data <= 8'd141;9'd10: data <= 8'd143;9'd11: data <= 8'd144;9'd12: data <= 8'd146;9'd13: data <= 8'd147;9'd14: data <= 8'd149;9'd15: data <= 8'd150;9'd16: data <= 8'd152;9'd17: data <= 8'd153;9'd18: data <= 8'd155;9'd19: data <= 8'd156;9'd20: data <= 8'd158;9'd21: data <= 8'd159;9'd22: data <= 8'd161;9'd23: data <= 8'd162;9'd24: data <= 8'd164;9'd25: data <= 8'd165;9'd26: data <= 8'd167;9'd27: data <= 8'd168;9'd28: data <= 8'd170;9'd29: data <= 8'd171;9'd30: data <= 8'd173;9'd31: data <= 8'd174;9'd32: data <= 8'd176;9'd33: data <= 8'd177;9'd34: data <= 8'd178;9'd35: data <= 8'd180;9'd36: data <= 8'd181;9'd37: data <= 8'd183;9'd38: data <= 8'd184;9'd39: data <= 8'd185;9'd40: data <= 8'd187;9'd41: data <= 8'd188;9'd42: data <= 8'd190;9'd43: data <= 8'd191;9'd44: data <= 8'd192;9'd45: data <= 8'd194;9'd46: data <= 8'd195;9'd47: data <= 8'd196;9'd48: data <= 8'd198;9'd49: data <= 8'd199;9'd50: data <= 8'd200;9'd51: data <= 8'd201;9'd52: data <= 8'd203;9'd53: data <= 8'd204;9'd54: data <= 8'd205;9'd55: data <= 8'd206;9'd56: data <= 8'd208;9'd57: data <= 8'd209;9'd58: data <= 8'd210;9'd59: data <= 8'd211;9'd60: data <= 8'd212;9'd61: data <= 8'd213;9'd62: data <= 8'd215;9'd63: data <= 8'd216;9'd64: data <= 8'd217;9'd65: data <= 8'd218;9'd66: data <= 8'd219;9'd67: data <= 8'd220;9'd68: data <= 8'd221;9'd69: data <= 8'd222;9'd70: data <= 8'd223;9'd71: data <= 8'd224;9'd72: data <= 8'd225;9'd73: data <= 8'd226;9'd74: data <= 8'd227;9'd75: data <= 8'd228;9'd76: data <= 8'd229;9'd77: data <= 8'd230;9'd78: data <= 8'd231;9'd79: data <= 8'd232;9'd80: data <= 8'd233;9'd81: data <= 8'd233;9'd82: data <= 8'd234;9'd83: data <= 8'd235;9'd84: data <= 8'd236;9'd85: data <= 8'd237;9'd86: data <= 8'd238;9'd87: data <= 8'd238;9'd88: data <= 8'd239;9'd89: data <= 8'd240;9'd90: data <= 8'd240;9'd91: data <= 8'd241;9'd92: data <= 8'd242;9'd93: data <= 8'd242;9'd94: data <= 8'd243;9'd95: data <= 8'd244;9'd96: data <= 8'd244;9'd97: data <= 8'd245;9'd98: data <= 8'd245;9'd99: data <= 8'd246;9'd100: data <= 8'd247;9'd101: data <= 8'd247;9'd102: data <= 8'd248;9'd103: data <= 8'd248;9'd104: data <= 8'd249;9'd105: data <= 8'd249;9'd106: data <= 8'd249;9'd107: data <= 8'd250;9'd108: data <= 8'd250;9'd109: data <= 8'd251;9'd110: data <= 8'd251;9'd111: data <= 8'd251;9'd112: data <= 8'd252;9'd113: data <= 8'd252;9'd114: data <= 8'd252;9'd115: data <= 8'd252;9'd116: data <= 8'd253;9'd117: data <= 8'd253;9'd118: data <= 8'd253;9'd119: data <= 8'd253;9'd120: data <= 8'd253;9'd121: data <= 8'd254;9'd122: data <= 8'd254;9'd123: data <= 8'd254;9'd124: data <= 8'd254;9'd125: data <= 8'd254;9'd126: data <= 8'd254;9'd127: data <= 8'd254;9'd128: data <= 8'd254;9'd129: data <= 8'd254;9'd130: data <= 8'd254;9'd131: data <= 8'd254;9'd132: data <= 8'd254;9'd133: data <= 8'd254;9'd134: data <= 8'd254;9'd135: data <= 8'd254;9'd136: data <= 8'd253;9'd137: data <= 8'd253;9'd138: data <= 8'd253;9'd139: data <= 8'd253;9'd140: data <= 8'd253;9'd141: data <= 8'd252;9'd142: data <= 8'd252;9'd143: data <= 8'd252;9'd144: data <= 8'd252;9'd145: data <= 8'd251;9'd146: data <= 8'd251;9'd147: data <= 8'd251;9'd148: data <= 8'd250;9'd149: data <= 8'd250;9'd150: data <= 8'd249;9'd151: data <= 8'd249;9'd152: data <= 8'd249;9'd153: data <= 8'd248;9'd154: data <= 8'd248;9'd155: data <= 8'd247;9'd156: data <= 8'd247;9'd157: data <= 8'd246;9'd158: data <= 8'd245;9'd159: data <= 8'd245;9'd160: data <= 8'd244;9'd161: data <= 8'd244;9'd162: data <= 8'd243;9'd163: data <= 8'd242;9'd164: data <= 8'd242;9'd165: data <= 8'd241;9'd166: data <= 8'd240;9'd167: data <= 8'd240;9'd168: data <= 8'd239;9'd169: data <= 8'd238;9'd170: data <= 8'd238;9'd171: data <= 8'd237;9'd172: data <= 8'd236;9'd173: data <= 8'd235;9'd174: data <= 8'd234;9'd175: data <= 8'd233;9'd176: data <= 8'd233;9'd177: data <= 8'd232;9'd178: data <= 8'd231;9'd179: data <= 8'd230;9'd180: data <= 8'd229;9'd181: data <= 8'd228;9'd182: data <= 8'd227;9'd183: data <= 8'd226;9'd184: data <= 8'd225;9'd185: data <= 8'd224;9'd186: data <= 8'd223;9'd187: data <= 8'd222;9'd188: data <= 8'd221;9'd189: data <= 8'd220;9'd190: data <= 8'd219;9'd191: data <= 8'd218;9'd192: data <= 8'd217;9'd193: data <= 8'd216;9'd194: data <= 8'd215;9'd195: data <= 8'd213;9'd196: data <= 8'd212;9'd197: data <= 8'd211;9'd198: data <= 8'd210;9'd199: data <= 8'd209;9'd200: data <= 8'd208;9'd201: data <= 8'd206;9'd202: data <= 8'd205;9'd203: data <= 8'd204;9'd204: data <= 8'd203;9'd205: data <= 8'd201;9'd206: data <= 8'd200;9'd207: data <= 8'd199;9'd208: data <= 8'd198;9'd209: data <= 8'd196;9'd210: data <= 8'd195;9'd211: data <= 8'd194;9'd212: data <= 8'd192;9'd213: data <= 8'd191;9'd214: data <= 8'd190;9'd215: data <= 8'd188;9'd216: data <= 8'd187;9'd217: data <= 8'd185;9'd218: data <= 8'd184;9'd219: data <= 8'd183;9'd220: data <= 8'd181;9'd221: data <= 8'd180;9'd222: data <= 8'd178;9'd223: data <= 8'd177;9'd224: data <= 8'd176;9'd225: data <= 8'd174;9'd226: data <= 8'd173;9'd227: data <= 8'd171;9'd228: data <= 8'd170;9'd229: data <= 8'd168;9'd230: data <= 8'd167;9'd231: data <= 8'd165;9'd232: data <= 8'd164;9'd233: data <= 8'd162;9'd234: data <= 8'd161;9'd235: data <= 8'd159;9'd236: data <= 8'd158;9'd237: data <= 8'd156;9'd238: data <= 8'd155;9'd239: data <= 8'd153;9'd240: data <= 8'd152;9'd241: data <= 8'd150;9'd242: data <= 8'd149;9'd243: data <= 8'd147;9'd244: data <= 8'd146;9'd245: data <= 8'd144;9'd246: data <= 8'd143;9'd247: data <= 8'd141;9'd248: data <= 8'd139;9'd249: data <= 8'd138;9'd250: data <= 8'd136;9'd251: data <= 8'd135;9'd252: data <= 8'd133;9'd253: data <= 8'd132;9'd254: data <= 8'd130;9'd255: data <= 8'd129;9'd256: data <= 8'd127;9'd257: data <= 8'd125;9'd258: data <= 8'd124;9'd259: data <= 8'd122;9'd260: data <= 8'd121;9'd261: data <= 8'd119;9'd262: data <= 8'd118;9'd263: data <= 8'd116;9'd264: data <= 8'd115;9'd265: data <= 8'd113;9'd266: data <= 8'd111;9'd267: data <= 8'd110;9'd268: data <= 8'd108;9'd269: data <= 8'd107;9'd270: data <= 8'd105;9'd271: data <= 8'd104;9'd272: data <= 8'd102;9'd273: data <= 8'd101;9'd274: data <= 8'd99;9'd275: data <= 8'd98;9'd276: data <= 8'd96;9'd277: data <= 8'd95;9'd278: data <= 8'd93;9'd279: data <= 8'd92;9'd280: data <= 8'd90;9'd281: data <= 8'd89;9'd282: data <= 8'd87;9'd283: data <= 8'd86;9'd284: data <= 8'd84;9'd285: data <= 8'd83;9'd286: data <= 8'd81;9'd287: data <= 8'd80;9'd288: data <= 8'd78;9'd289: data <= 8'd77;9'd290: data <= 8'd76;9'd291: data <= 8'd74;9'd292: data <= 8'd73;9'd293: data <= 8'd71;9'd294: data <= 8'd70;9'd295: data <= 8'd69;9'd296: data <= 8'd67;9'd297: data <= 8'd66;9'd298: data <= 8'd64;9'd299: data <= 8'd63;9'd300: data <= 8'd62;9'd301: data <= 8'd60;9'd302: data <= 8'd59;9'd303: data <= 8'd58;9'd304: data <= 8'd56;9'd305: data <= 8'd55;9'd306: data <= 8'd54;9'd307: data <= 8'd53;9'd308: data <= 8'd51;9'd309: data <= 8'd50;9'd310: data <= 8'd49;9'd311: data <= 8'd48;9'd312: data <= 8'd46;9'd313: data <= 8'd45;9'd314: data <= 8'd44;9'd315: data <= 8'd43;9'd316: data <= 8'd42;9'd317: data <= 8'd41;9'd318: data <= 8'd39;9'd319: data <= 8'd38;9'd320: data <= 8'd37;9'd321: data <= 8'd36;9'd322: data <= 8'd35;9'd323: data <= 8'd34;9'd324: data <= 8'd33;9'd325: data <= 8'd32;9'd326: data <= 8'd31;9'd327: data <= 8'd30;9'd328: data <= 8'd29;9'd329: data <= 8'd28;9'd330: data <= 8'd27;9'd331: data <= 8'd26;9'd332: data <= 8'd25;9'd333: data <= 8'd24;9'd334: data <= 8'd23;9'd335: data <= 8'd22;9'd336: data <= 8'd21;9'd337: data <= 8'd21;9'd338: data <= 8'd20;9'd339: data <= 8'd19;9'd340: data <= 8'd18;9'd341: data <= 8'd17;9'd342: data <= 8'd16;9'd343: data <= 8'd16;9'd344: data <= 8'd15;9'd345: data <= 8'd14;9'd346: data <= 8'd14;9'd347: data <= 8'd13;9'd348: data <= 8'd12;9'd349: data <= 8'd12;9'd350: data <= 8'd11;9'd351: data <= 8'd10;9'd352: data <= 8'd10;9'd353: data <= 8'd9;9'd354: data <= 8'd9;9'd355: data <= 8'd8;9'd356: data <= 8'd7;9'd357: data <= 8'd7;9'd358: data <= 8'd6;9'd359: data <= 8'd6;9'd360: data <= 8'd5;9'd361: data <= 8'd5;9'd362: data <= 8'd5;9'd363: data <= 8'd4;9'd364: data <= 8'd4;9'd365: data <= 8'd3;9'd366: data <= 8'd3;9'd367: data <= 8'd3;9'd368: data <= 8'd2;9'd369: data <= 8'd2;9'd370: data <= 8'd2;9'd371: data <= 8'd2;9'd372: data <= 8'd1;9'd373: data <= 8'd1;9'd374: data <= 8'd1;9'd375: data <= 8'd1;9'd376: data <= 8'd1;9'd377: data <= 8'd0;9'd378: data <= 8'd0;9'd379: data <= 8'd0;9'd380: data <= 8'd0;9'd381: data <= 8'd0;9'd382: data <= 8'd0;9'd383: data <= 8'd0;9'd384: data <= 8'd0;9'd385: data <= 8'd0;9'd386: data <= 8'd0;9'd387: data <= 8'd0;9'd388: data <= 8'd0;9'd389: data <= 8'd0;9'd390: data <= 8'd0;9'd391: data <= 8'd0;9'd392: data <= 8'd1;9'd393: data <= 8'd1;9'd394: data <= 8'd1;9'd395: data <= 8'd1;9'd396: data <= 8'd1;9'd397: data <= 8'd2;9'd398: data <= 8'd2;9'd399: data <= 8'd2;9'd400: data <= 8'd2;9'd401: data <= 8'd3;9'd402: data <= 8'd3;9'd403: data <= 8'd3;9'd404: data <= 8'd4;9'd405: data <= 8'd4;9'd406: data <= 8'd5;9'd407: data <= 8'd5;9'd408: data <= 8'd5;9'd409: data <= 8'd6;9'd410: data <= 8'd6;9'd411: data <= 8'd7;9'd412: data <= 8'd7;9'd413: data <= 8'd8;9'd414: data <= 8'd9;9'd415: data <= 8'd9;9'd416: data <= 8'd10;9'd417: data <= 8'd10;9'd418: data <= 8'd11;9'd419: data <= 8'd12;9'd420: data <= 8'd12;9'd421: data <= 8'd13;9'd422: data <= 8'd14;9'd423: data <= 8'd14;9'd424: data <= 8'd15;9'd425: data <= 8'd16;9'd426: data <= 8'd16;9'd427: data <= 8'd17;9'd428: data <= 8'd18;9'd429: data <= 8'd19;9'd430: data <= 8'd20;9'd431: data <= 8'd21;9'd432: data <= 8'd21;9'd433: data <= 8'd22;9'd434: data <= 8'd23;9'd435: data <= 8'd24;9'd436: data <= 8'd25;9'd437: data <= 8'd26;9'd438: data <= 8'd27;9'd439: data <= 8'd28;9'd440: data <= 8'd29;9'd441: data <= 8'd30;9'd442: data <= 8'd31;9'd443: data <= 8'd32;9'd444: data <= 8'd33;9'd445: data <= 8'd34;9'd446: data <= 8'd35;9'd447: data <= 8'd36;9'd448: data <= 8'd37;9'd449: data <= 8'd38;9'd450: data <= 8'd39;9'd451: data <= 8'd41;9'd452: data <= 8'd42;9'd453: data <= 8'd43;9'd454: data <= 8'd44;9'd455: data <= 8'd45;9'd456: data <= 8'd46;9'd457: data <= 8'd48;9'd458: data <= 8'd49;9'd459: data <= 8'd50;9'd460: data <= 8'd51;9'd461: data <= 8'd53;9'd462: data <= 8'd54;9'd463: data <= 8'd55;9'd464: data <= 8'd56;9'd465: data <= 8'd58;9'd466: data <= 8'd59;9'd467: data <= 8'd60;9'd468: data <= 8'd62;9'd469: data <= 8'd63;9'd470: data <= 8'd64;9'd471: data <= 8'd66;9'd472: data <= 8'd67;9'd473: data <= 8'd69;9'd474: data <= 8'd70;9'd475: data <= 8'd71;9'd476: data <= 8'd73;9'd477: data <= 8'd74;9'd478: data <= 8'd76;9'd479: data <= 8'd77;9'd480: data <= 8'd78;9'd481: data <= 8'd80;9'd482: data <= 8'd81;9'd483: data <= 8'd83;9'd484: data <= 8'd84;9'd485: data <= 8'd86;9'd486: data <= 8'd87;9'd487: data <= 8'd89;9'd488: data <= 8'd90;9'd489: data <= 8'd92;9'd490: data <= 8'd93;9'd491: data <= 8'd95;9'd492: data <= 8'd96;9'd493: data <= 8'd98;9'd494: data <= 8'd99;9'd495: data <= 8'd101;9'd496: data <= 8'd102;9'd497: data <= 8'd104;9'd498: data <= 8'd105;9'd499: data <= 8'd107;9'd500: data <= 8'd108;9'd501: data <= 8'd110;9'd502: data <= 8'd111;9'd503: data <= 8'd113;9'd504: data <= 8'd115;9'd505: data <= 8'd116;9'd506: data <= 8'd118;9'd507: data <= 8'd119;9'd508: data <= 8'd121;9'd509: data <= 8'd122;9'd510: data <= 8'd124;9'd511: data <= 8'd125;endcase
end
endmodule

新建一个quartus工程,添加顶层文件后,把这个.v文件加进去,这里我通过现在正在做的一个adda项目的文件进行演示:
ada_test.v文件的代码如下:

`timescale 1ns / 1ps
//
// Module Name:        C5G_PLL
//
module ada_test( clk50, rst_n, DAC_CLK,DAC_DAT,DAC_PD,ADC_CLK,ADC_DAT,ADC_PD,SW); input        clk50;
input        rst_n;//=======================================================
//  DAC
//=======================================================
output       DAC_CLK;
output [7:0] DAC_DAT;
output       DAC_PD;//=======================================================
//  ADC
//=======================================================
output       ADC_CLK;
input  [7:0] ADC_DAT;
output       ADC_PD;input  [1:0] SW;
reg  [7:0] ADC_DAT_REG;assign DAC_CLK = clk50;
assign ADC_CLK = ~clk50;
assign DAC_PD = 0;
assign ADC_PD = 0; reg  [8:0]  Cont;        //定义一个计数器,用于SIN的地址Cont持续计数
always@(posedge clk50 )
beginCont   <=  Cont+1;//address <= address +1;
endalways @(posedge clk50)
beginADC_DAT_REG <= ADC_DAT;
end//generate sine wave
// 实例化调用刚才加进去的正弦波文件
sin_table INS_SIN(.address(Cont),.data(DAC_DAT));endmodule

为了方便观看,这里提供两种方式来进行验证:

1、通过新建University Program VWF文件添加信号验证

最终生成的波形如下:
注:只用对clk50 和 rst_n进行设置。其余部分保持不动即可

2、通过adda模块和signaltap结合观察数据波形

如下图波形所示:

二、通过FPGA的IP核调用实现查表

这里首先需要生成对应的mif文件,之后通过FPGA的IP核生成.v文件,然后在顶层模块中实现调用即可。说的可能有点简单,但是实际操作并不简单,过程很多已经省略,鉴于篇幅,不再展开。

mif文件:

Sine Wave Data —>.mif file
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。
生成.mif文件的方法很多
1、利用Quartus自带的mif编辑器
2、利用mif软件生成,百度:Mif Maker2010的使用方法
3、有mif的格式,可以使用excel来生成数据,再导入mif文件里
将生成的.mif文件放到相应的项目文件夹里,也可以直接使用我们的提供的mif文件

这里推荐使用MIf Makeer2010软件生成对应的mif文件
软件打开后页面如下:
在查看中设置全局参数:

在设定波形中选择正弦波后保存成xxx.mif文件即可,打开quartus软件通过添加mif文件来生成ROM表的.v文件

打开ip核,直接搜索对应的ip。

设置要生成的文件名:
步骤如下:
在这里记得添加mif文件:
继续next一直到最后即可:
这里勾选xxx_inst.v是为了更好的参考实例调用格式

在顶层文件中添加实例化(也可以直接修改最开始的.v文件实例化代码)

`timescale 1ns / 1ps
//
// Module Name:        C5G_PLL
//
module ada_test( clk50, rst_n, DAC_CLK,DAC_DAT,DAC_PD,ADC_CLK,ADC_DAT,ADC_PD,SW); input        clk50;
input        rst_n;//=======================================================
//  DAC
//=======================================================
output       DAC_CLK;
output [7:0] DAC_DAT;
output       DAC_PD;//=======================================================
//  ADC
//=======================================================
output       ADC_CLK;
input  [7:0] ADC_DAT;
output       ADC_PD;input  [1:0] SW;
reg  [7:0] ADC_DAT_REG;assign DAC_CLK = clk50;
assign ADC_CLK = ~clk50;
assign DAC_PD = 0;
assign ADC_PD = 0; reg  [8:0]  Cont;        //定义一个计数器,用于SIN的地址Cont持续计数
always@(posedge clk50 )
beginCont   <=  Cont+1;//address <= address +1;
endalways @(posedge clk50)
beginADC_DAT_REG <= ADC_DAT;
end//generate sine wavesine_1   sin_rom_inst (.address ( Cont ),.clock ( ~clk50 ),.q ( DAC_DAT ));  endmodule

通过signalTap生成的波形如下:
可以看出两种方法都是通过查表的方式来实现正弦波的生成,实际中可以根据自己的需要进行选择。
这篇文章里面有很多东西进行了省略,篇幅有限,还请见谅。后面有时间我也会继续进行改进。

FPGA(四):FPGA通过查表的方式生成正弦波相关推荐

  1. 编程示例:以人名为输入判断性别的函数 以查表的方式实现

    编程示例:以人名为输入判断性别的函数 以查表的方式实现 需求分析:功能是根据输入的人名,来判断人名的男女的可能性.限定条件是中国的汉族的人名. 格式如下: 输入是"孙 机    苏东海   ...

  2. 用查表的方法将一位十六进制数转换成与它相应的ASCII码

    首先对于将十六进制数转换成他相应的ascll这句话是什么意思? 举个例子,比如说一位十六进制他的取值为 0-f,那么我们将它存贮在内存中,他们的ascll字符显示并不是0,1,2,3,-,a,b,c这 ...

  3. STM32简易多级菜单(数组查表法)

    单片机开发中,有时会用到屏幕来显示内容,当需要逐级显示内容时,就需要使用多级菜单的形式了. 1 多级菜单 多级菜单的实现,大体分为两种设计思路: 通过双向链表实现 通过数组查表实现 总体思路都是把菜单 ...

  4. STM32CUBEMX—查表法实现SPWM

    SPWM称为正弦波脉宽调制,其原理是采用三角波作为载波,正弦波作为调制波合成后生成的等高不等宽的PWM波.在simulink仿真中直接用三角波模块与sine wave合成即可,但对于编程来说比较麻烦, ...

  5. FPGA之道(63)“万能”的查表法

    文章目录 前言 "万能"的查表法 正弦波发生器示例 前言 又好几天没更新了,这就是又停止了读书的节奏,终于在毕业论文可以稍微舒缓下来的时候更新了博客,完成一个系列,读完一本书等等都 ...

  6. FPGA如何利用查表法得到某角度所对应的正弦值、余弦值

    FPGA如何利用查表法得到某角度所对应的正弦值.余弦值 1 实现思路 2 具体实现步骤 2.1 MATLAB生成sin.coe文件和cos.coe文件 2.2 将sin.coe和cos.coe文件分别 ...

  7. GZFramwork数据库层《四》单据主从表增删改查

    同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 项目源码下载地址:https://github.com/GarsonZhang/GZFr ...

  8. (42)FPGA四种常用逻辑门(同或门)

    (42)FPGA四种常用逻辑门(同或门) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA四种常用逻辑门(同或门) 5)技术交流 6)参考资料 2 FPGA入 ...

  9. (41)FPGA四种常用逻辑门(异或门)

    (41)FPGA四种常用逻辑门(异或门) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA四种常用逻辑门(异或门) 5)技术交流 6)参考资料 2 FPGA入 ...

最新文章

  1. 人脸识别剩下的难题:从遮挡,年龄,姿态,妆造到亲属关系,人脸攻击
  2. 想转行?零基础该如何学Python?这些一定要明白
  3. applicationContext.xml中设置读取jdbc.properties文件
  4. php pack、unpack、ord 函数使用方法(二进制流接口应用实例)
  5. 基于MATLAB的面对对象编程(3)——事件和响应
  6. VTK:快速傅里叶变换用法实战
  7. Confluence 6 索引支持的语言并进行修改
  8. View的事件分发机制简述
  9. Cassandra 简介
  10. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock...
  11. 【数字信号调制】基于matlab GUI数字频带(ASK+PSK+QAM)调制仿真 【含Matlab源码 483期】
  12. Win软件 - Listary
  13. Python之ASCII码
  14. Kali linux 全部版本镜像下载
  15. 新手如何从零开始学习unity
  16. 简单粗暴卸载Oracle RAC
  17. 无所不在的嵌入式系统
  18. 无法正常打开网页的解决方法(情况一)
  19. 面向对象进阶(反射)
  20. Lacrimosa全集纳米盘下载(22CD1DVD)[APE]

热门文章

  1. 嵌入式硬件(一)概述
  2. idea连接mysql数据库下载驱动失败
  3. robosense速腾16线激光雷达配置过程
  4. 220817笔试(速腾聚创)
  5. 支持两个USB Type-C接口都能投屏的便携显示器方案
  6. 计算机类专业知识pdf,事业单位计算机专业知识整理(全)(20210324075052).pdf
  7. PyTorch深度学习入门笔记(五)Transforms的使用
  8. [MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单
  9. 2023新春快乐,兔年大吉!
  10. Idea新建项目名后出现中括号别名