【高云GW5AT-LV60 开发套件试用体验】五、正弦波生成和LCD屏幕显示
高云GW5AT-LV60 FPGA的图像开发板,采用核心板与底板的分离设计,搭配了一块奥唯思 VD-MIPI-5.5TH屏幕。通过编程,我们可以实现GW5AT-LV60 FPGA芯片对LCD的显示控制。在以前的实验中,我们实现了几个静态画面的切换显示。
FPGA适合实时信号的采集和处理,后续我们打算用这个开发板实现一个示波器的功能,在采集实际的信号前,我们测试一些波形显示的功能。
一、LCD 显示屏与FPGA的硬件连接
在GW5AT-LV60 FPGA的图像开发板上,VD-MIPI-5.5TH屏幕通过 底板上的连接器J10,与开发板相连。
LCD屏幕接口的接口信号定义如下,

二、LCD 显示软件开发
使用 Gowin EDA 软件,针对 GW5AT-LV60UG225C2/I1 芯片和 VF-G60K225 开发板,
VD-MIPI-5.5TH LCD 屏幕显示测试的软件开发的详细操作步骤如下,
1、新建工程

2、配置目标器件

3、创建顶层模块文件

在编辑器中输入以下代码

4、创建和添加其它文件
创建和添加时钟模块、彩条生成模块、LCD 控制模块、MIPI DSI 发送模块等相关文件,最后设计文件中包括以下Verilog设计文件。

5、创建引脚约束
-
点击工程窗口中的 "Files" → "New" → "Physical Constraints
File"


6、创建Timing 约束

7、综合设计
- 点击工具栏中的 "Synthesize" 按钮(图标为蓝色箭头)
- 等待综合完成,确保没有错误(查看底部消息窗口)
8、布局布线
- 点击工具栏中的 "Run Place&Route" 按钮(图标为绿色箭头)
9、连接开发板并下载程序
烧录结束后, 在VD-MIPI-5.5TH LCD 屏幕上会显示出代码所设计的图案;

三、正弦波生成和显示
正弦波的波形公式为
y ( t )=Asin(2 πft + ϕ )
解释
y(t) :波在时间 ttt 时的振幅值。
A :振幅(Amplitude),表示波的最大值。它决定了波形的高低程度。
2πf :角频率(Angular frequency),其中
f 是频率(Frequency),单位是赫兹(Hz)。角频率表示波每秒内完成的周期数乘以 2π。
t :时间(Time),单位是秒(s)。
ϕ:相位(Phase),

在许多的嵌入式系统或FPGA里,计算正弦的值是一个比较麻烦的事情。在Verilog里没有一个运算符可以直接计算正弦值。为了求取正弦值,需要编写代码,而且代码比较复杂,计算比较大。
为了简化运算,我们采用了查表的方式来进行正弦运算。
reg [15:0] lut
[0:627]; // 628×16位存储阵列
initial begin
lut [ 0 ] <= 240;
lut [ 1 ] <= 242;
lut [ 2 ] <= 244;
lut [ 3 ] <= 246;
lut [ 4 ] <= 248;
lut [ 5 ] <= 250;
lut [ 6 ] <= 251;
lut [ 7 ] <= 253;
lut [ 8 ] <= 255;
lut [ 9 ] <= 257;
lut [ 10 ] <= 259;
lut [ 11 ] <= 261;
lut [ 12 ] <= 263;
lut [ 13 ] <= 265;
lut [ 14 ] <= 267;
lut [ 15 ] <= 269;
lut [ 16 ] <= 271;
lut [ 17 ] <= 273;
lut [ 18 ] <= 275;
lut [ 19 ] <= 277;
lut [ 20 ] <= 279;
lut [ 21 ] <= 281;
lut [ 22 ] <= 283;
lut [ 23 ] <= 285;
lut [ 24 ] <= 287;
lut [ 25 ] <= 289;
lut [ 26 ] <= 291;
lut [ 27 ] <= 293;
lut [ 28 ] <= 295;
lut [ 29 ] <= 297;
lut [ 30 ] <= 299;
lut [ 31 ] <= 301;
lut [ 32 ] <= 302;
lut [ 33 ] <= 304;
lut [ 34 ] <= 306;
lut [ 35 ] <= 308;
lut [ 36 ] <= 310;
lut [ 37 ] <= 312;
lut [ 38 ] <= 314;
lut [ 39 ] <= 316;
lut [ 40 ] <= 317;
lut [ 41 ] <= 319;
lut [ 42 ] <= 321;
lut [ 43 ] <= 323;
lut [ 44 ] <= 325;
lut [ 45 ] <= 327;
lut [ 46 ] <= 328;
lut [ 47 ] <= 330;
lut [ 48 ] <= 332;
lut [ 49 ] <= 334;
lut [ 50 ] <= 335;
lut [ 51 ] <= 337;
lut [ 52 ] <= 339;
lut [ 53 ] <= 341;
lut [ 54 ] <= 342;
lut [ 55 ] <= 344;
lut [ 56 ] <= 346;
lut [ 57 ] <= 347;
lut [ 58 ] <= 349;
lut [ 59 ] <= 351;
lut [ 60 ] <= 352;
lut [ 61 ] <= 354;
lut [ 62 ] <= 356;
lut [ 63 ] <= 357;
lut [ 64 ] <= 359;
lut [ 65 ] <= 361;
lut [ 66 ] <= 362;
lut [ 67 ] <= 364;
lut [ 68 ] <= 365;
lut [ 69 ] <= 367;
lut [ 70 ] <= 368;
lut [ 71 ] <= 370;
lut [ 72 ] <= 371;
lut [ 73 ] <= 373;
lut [ 74 ] <= 374;
lut [ 75 ] <= 376;
lut [ 76 ] <= 377;
lut [ 77 ] <= 379;
lut [ 78 ] <= 380;
lut [ 79 ] <= 382;
lut [ 80 ] <= 383;
lut [ 81 ] <= 384;
lut [ 82 ] <= 386;
lut [ 83 ] <= 387;
lut [ 84 ] <= 388;
lut [ 85 ] <= 390;
lut [ 86 ] <= 391;
lut [ 87 ] <= 392;
lut [ 88 ] <= 394;
lut [ 89 ] <= 395;
lut [ 90 ] <= 396;
lut [ 91 ] <= 397;
lut [ 92 ] <= 399;
lut [ 93 ] <= 400;
lut [ 94 ] <= 401;
lut [ 95 ] <= 402;
lut [ 96 ] <= 403;
lut [ 97 ] <= 405;
lut [ 98 ] <= 406;
lut [ 99 ] <= 407;
lut [ 100] <= 408;
lut [ 101] <= 409;
lut [ 102] <= 410;
lut [ 103] <= 411;
lut [ 104] <= 412;
lut [ 105] <= 413;
lut [ 106] <= 414;
lut [ 107] <= 415;
lut [ 108] <= 416;
lut [ 109] <= 417;
lut [ 110] <= 418;
lut [ 111] <= 419;
lut [ 112] <= 420;
lut [ 113] <= 420;
lut [ 114] <= 421;
lut [ 115] <= 422;
lut [ 116] <= 423;
lut [ 117] <= 424;
lut [ 118] <= 424;
lut [ 119] <= 425;
lut [ 120] <= 426;
lut [ 121] <= 427;
lut [ 122] <= 427;
lut [ 123] <= 428;
lut [ 124] <= 429;
lut [ 125] <= 429;
lut [ 126] <= 430;
lut [ 127] <= 431;
lut [ 128] <= 431;
lut [ 129] <= 432;
lut [ 130] <= 432;
lut [ 131] <= 433;
lut [ 132] <= 433;
lut [ 133] <= 434;
lut [ 134] <= 434;
lut [ 135] <= 435;
lut [ 136] <= 435;
lut [ 137] <= 436;
lut [ 138] <= 436;
lut [ 139] <= 436;
lut [ 140] <= 437;
lut [ 141] <= 437;
lut [ 142] <= 437;
lut [ 143] <= 438;
lut [ 144] <= 438;
lut [ 145] <= 438;
lut [ 146] <= 438;
lut [ 147] <= 438;
lut [ 148] <= 439;
lut [ 149] <= 439;
lut [ 150] <= 439;
lut [ 151] <= 439;
lut [ 152] <= 439;
lut [ 153] <= 439;
lut [ 154] <= 439;
lut [ 155] <= 439;
lut [ 156] <= 439;
lut [ 157] <= 440;
lut [ 158] <= 439;
lut [ 159] <= 439;
lut [ 160] <= 439;
lut [ 161] <= 439;
lut [ 162] <= 439;
lut [ 163] <= 439;
lut [ 164] <= 439;
lut [ 165] <= 439;
lut [ 166] <= 439;
lut [ 167] <= 438;
lut [ 168] <= 438;
lut [ 169] <= 438;
lut [ 170] <= 438;
lut [ 171] <= 438;
lut [ 172] <= 437;
lut [ 173] <= 437;
lut [ 174] <= 437;
lut [ 175] <= 436;
lut [ 176] <= 436;
lut [ 177] <= 436;
lut [ 178] <= 435;
lut [ 179] <= 435;
lut [ 180] <= 434;
lut [ 181] <= 434;
lut [ 182] <= 433;
lut [ 183] <= 433;
lut [ 184] <= 432;
lut [ 185] <= 432;
lut [ 186] <= 431;
lut [ 187] <= 431;
lut [ 188] <= 430;
lut [ 189] <= 429;
lut [ 190] <= 429;
lut [ 191] <= 428;
lut [ 192] <= 427;
lut [ 193] <= 427;
lut [ 194] <= 426;
lut [ 195] <= 425;
lut [ 196] <= 424;
lut [ 197] <= 424;
lut [ 198] <= 423;
lut [ 199] <= 422;
lut [ 200] <= 421;
lut [ 201] <= 420;
lut [ 202] <= 420;
lut [ 203] <= 419;
lut [ 204] <= 418;
lut [ 205] <= 417;
lut [ 206] <= 416;
lut [ 207] <= 415;
lut [ 208] <= 414;
lut [ 209] <= 413;
lut [ 210] <= 412;
lut [ 211] <= 411;
lut [ 212] <= 410;
lut [ 213] <= 409;
lut [ 214] <= 408;
lut [ 215] <= 407;
lut [ 216] <= 406;
lut [ 217] <= 405;
lut [ 218] <= 403;
lut [ 219] <= 402;
lut [ 220] <= 401;
lut [ 221] <= 400;
lut [ 222] <= 399;
lut [ 223] <= 397;
lut [ 224] <= 396;
lut [ 225] <= 395;
lut [ 226] <= 394;
lut [ 227] <= 392;
lut [ 228] <= 391;
lut [ 229] <= 390;
lut [ 230] <= 388;
lut [ 231] <= 387;
lut [ 232] <= 386;
lut [ 233] <= 384;
lut [ 234] <= 383;
lut [ 235] <= 382;
lut [ 236] <= 380;
lut [ 237] <= 379;
lut [ 238] <= 377;
lut [ 239] <= 376;
lut [ 240] <= 374;
lut [ 241] <= 373;
lut [ 242] <= 371;
lut [ 243] <= 370;
lut [ 244] <= 368;
lut [ 245] <= 367;
lut [ 246] <= 365;
lut [ 247] <= 364;
lut [ 248] <= 362;
lut [ 249] <= 361;
lut [ 250] <= 359;
lut [ 251] <= 357;
lut [ 252] <= 356;
lut [ 253] <= 354;
lut [ 254] <= 352;
lut [ 255] <= 351;
lut [ 256] <= 349;
lut [ 257] <= 347;
lut [ 258] <= 346;
lut [ 259] <= 344;
lut [ 260] <= 342;
lut [ 261] <= 341;
lut [ 262] <= 339;
lut [ 263] <= 337;
lut [ 264] <= 335;
lut [ 265] <= 334;
lut [ 266] <= 332;
lut [ 267] <= 330;
lut [ 268] <= 328;
lut [ 269] <= 327;
lut [ 270] <= 325;
lut [ 271] <= 323;
lut [ 272] <= 321;
lut [ 273] <= 319;
lut [ 274] <= 317;
lut [ 275] <= 316;
lut [ 276] <= 314;
lut [ 277] <= 312;
lut [ 278] <= 310;
lut [ 279] <= 308;
lut [ 280] <= 306;
lut [ 281] <= 304;
lut [ 282] <= 302;
lut [ 283] <= 301;
lut [ 284] <= 299;
lut [ 285] <= 297;
lut [ 286] <= 295;
lut [ 287] <= 293;
lut [ 288] <= 291;
lut [ 289] <= 289;
lut [ 290] <= 287;
lut [ 291] <= 285;
lut [ 292] <= 283;
lut [ 293] <= 281;
lut [ 294] <= 279;
lut [ 295] <= 277;
lut [ 296] <= 275;
lut [ 297] <= 273;
lut [ 298] <= 271;
lut [ 299] <= 269;
lut [ 300] <= 267;
lut [ 301] <= 265;
lut [ 302] <= 263;
lut [ 303] <= 261;
lut [ 304] <= 259;
lut [ 305] <= 257;
lut [ 306] <= 255;
lut [ 307] <= 253;
lut [ 308] <= 251;
lut [ 309] <= 250;
lut [ 310] <= 248;
lut [ 311] <= 246;
lut [ 312] <= 244;
lut [ 313] <= 242;
lut [ 314] <= 240;
lut [ 315] <= 237;
lut [ 316] <= 235;
lut [ 317] <= 233;
lut [ 318] <= 231;
lut [ 319] <= 229;
lut [ 320] <= 228;
lut [ 321] <= 226;
lut [ 322] <= 224;
lut [ 323] <= 222;
lut [ 324] <= 220;
lut [ 325] <= 218;
lut [ 326] <= 216;
lut [ 327] <= 214;
lut [ 328] <= 212;
lut [ 329] <= 210;
lut [ 330] <= 208;
lut [ 331] <= 206;
lut [ 332] <= 204;
lut [ 333] <= 202;
lut [ 334] <= 200;
lut [ 335] <= 198;
lut [ 336] <= 196;
lut [ 337] <= 194;
lut [ 338] <= 192;
lut [ 339] <= 190;
lut [ 340] <= 188;
lut [ 341] <= 186;
lut [ 342] <= 184;
lut [ 343] <= 182;
lut [ 344] <= 180;
lut [ 345] <= 178;
lut [ 346] <= 177;
lut [ 347] <= 175;
lut [ 348] <= 173;
lut [ 349] <= 171;
lut [ 350] <= 169;
lut [ 351] <= 167;
lut [ 352] <= 165;
lut [ 353] <= 163;
lut [ 354] <= 162;
lut [ 355] <= 160;
lut [ 356] <= 158;
lut [ 357] <= 156;
lut [ 358] <= 154;
lut [ 359] <= 152;
lut [ 360] <= 151;
lut [ 361] <= 149;
lut [ 362] <= 147;
lut [ 363] <= 145;
lut [ 364] <= 144;
lut [ 365] <= 142;
lut [ 366] <= 140;
lut [ 367] <= 138;
lut [ 368] <= 137;
lut [ 369] <= 135;
lut [ 370] <= 133;
lut [ 371] <= 132;
lut [ 372] <= 130;
lut [ 373] <= 128;
lut [ 374] <= 127;
lut [ 375] <= 125;
lut [ 376] <= 123;
lut [ 377] <= 122;
lut [ 378] <= 120;
lut [ 379] <= 118;
lut [ 380] <= 117;
lut [ 381] <= 115;
lut [ 382] <= 114;
lut [ 383] <= 112;
lut [ 384] <= 111;
lut [ 385] <= 109;
lut [ 386] <= 108;
lut [ 387] <= 106;
lut [ 388] <= 105;
lut [ 389] <= 103;
lut [ 390] <= 102;
lut [ 391] <= 100;
lut [ 392] <= 99 ;
lut [ 393] <= 97 ;
lut [ 394] <= 96 ;
lut [ 395] <= 95 ;
lut [ 396] <= 93 ;
lut [ 397] <= 92 ;
lut [ 398] <= 91 ;
lut [ 399] <= 89 ;
lut [ 400] <= 88 ;
lut [ 401] <= 87 ;
lut [ 402] <= 85 ;
lut [ 403] <= 84 ;
lut [ 404] <= 83 ;
lut [ 405] <= 82 ;
lut [ 406] <= 80 ;
lut [ 407] <= 79 ;
lut [ 408] <= 78 ;
lut [ 409] <= 77 ;
lut [ 410] <= 76 ;
lut [ 411] <= 74 ;
lut [ 412] <= 73 ;
lut [ 413] <= 72 ;
lut [ 414] <= 71 ;
lut [ 415] <= 70 ;
lut [ 416] <= 69 ;
lut [ 417] <= 68 ;
lut [ 418] <= 67 ;
lut [ 419] <= 66 ;
lut [ 420] <= 65 ;
lut [ 421] <= 64 ;
lut [ 422] <= 63 ;
lut [ 423] <= 62 ;
lut [ 424] <= 61 ;
lut [ 425] <= 60 ;
lut [ 426] <= 59 ;
lut [ 427] <= 59 ;
lut [ 428] <= 58 ;
lut [ 429] <= 57 ;
lut [ 430] <= 56 ;
lut [ 431] <= 55 ;
lut [ 432] <= 55 ;
lut [ 433] <= 54 ;
lut [ 434] <= 53 ;
lut [ 435] <= 52 ;
lut [ 436] <= 52 ;
lut [ 437] <= 51 ;
lut [ 438] <= 50 ;
lut [ 439] <= 50 ;
lut [ 440] <= 49 ;
lut [ 441] <= 48 ;
lut [ 442] <= 48 ;
lut [ 443] <= 47 ;
lut [ 444] <= 47 ;
lut [ 445] <= 46 ;
lut [ 446] <= 46 ;
lut [ 447] <= 45 ;
lut [ 448] <= 45 ;
lut [ 449] <= 44 ;
lut [ 450] <= 44 ;
lut [ 451] <= 43 ;
lut [ 452] <= 43 ;
lut [ 453] <= 43 ;
lut [ 454] <= 42 ;
lut [ 455] <= 42 ;
lut [ 456] <= 42 ;
lut [ 457] <= 41 ;
lut [ 458] <= 41 ;
lut [ 459] <= 41 ;
lut [ 460] <= 41 ;
lut [ 461] <= 41 ;
lut [ 462] <= 40 ;
lut [ 463] <= 40 ;
lut [ 464] <= 40 ;
lut [ 465] <= 40 ;
lut [ 466] <= 40 ;
lut [ 467] <= 40 ;
lut [ 468] <= 40 ;
lut [ 469] <= 40 ;
lut [ 470] <= 40 ;
lut [ 471] <= 40 ;
lut [ 472] <= 40 ;
lut [ 473] <= 40 ;
lut [ 474] <= 40 ;
lut [ 475] <= 40 ;
lut [ 476] <= 40 ;
lut [ 477] <= 40 ;
lut [ 478] <= 40 ;
lut [ 479] <= 40 ;
lut [ 480] <= 40 ;
lut [ 481] <= 41 ;
lut [ 482] <= 41 ;
lut [ 483] <= 41 ;
lut [ 484] <= 41 ;
lut [ 485] <= 41 ;
lut [ 486] <= 42 ;
lut [ 487] <= 42 ;
lut [ 488] <= 42 ;
lut [ 489] <= 43 ;
lut [ 490] <= 43 ;
lut [ 491] <= 43 ;
lut [ 492] <= 44 ;
lut [ 493] <= 44 ;
lut [ 494] <= 45 ;
lut [ 495] <= 45 ;
lut [ 496] <= 46 ;
lut [ 497] <= 46 ;
lut [ 498] <= 47 ;
lut [ 499] <= 47 ;
lut [ 500] <= 48 ;
lut [ 501] <= 48 ;
lut [ 502] <= 49 ;
lut [ 503] <= 50 ;
lut [ 504] <= 50 ;
lut [ 505] <= 51 ;
lut [ 506] <= 52 ;
lut [ 507] <= 52 ;
lut [ 508] <= 53 ;
lut [ 509] <= 54 ;
lut [ 510] <= 55 ;
lut [ 511] <= 55 ;
lut [ 512] <= 56 ;
lut [ 513] <= 57 ;
lut [ 514] <= 58 ;
lut [ 515] <= 59 ;
lut [ 516] <= 59 ;
lut [ 517] <= 60 ;
lut [ 518] <= 61 ;
lut [ 519] <= 62 ;
lut [ 520] <= 63 ;
lut [ 521] <= 64 ;
lut [ 522] <= 65 ;
lut [ 523] <= 66 ;
lut [ 524] <= 67 ;
lut [ 525] <= 68 ;
lut [ 526] <= 69 ;
lut [ 527] <= 70 ;
lut [ 528] <= 71 ;
lut [ 529] <= 72 ;
lut [ 530] <= 73 ;
lut [ 531] <= 74 ;
lut [ 532] <= 76 ;
lut [ 533] <= 77 ;
lut [ 534] <= 78 ;
lut [ 535] <= 79 ;
lut [ 536] <= 80 ;
lut [ 537] <= 82 ;
lut [ 538] <= 83 ;
lut [ 539] <= 84 ;
lut [ 540] <= 85 ;
lut [ 541] <= 87 ;
lut [ 542] <= 88 ;
lut [ 543] <= 89 ;
lut [ 544] <= 91 ;
lut [ 545] <= 92 ;
lut [ 546] <= 93 ;
lut [ 547] <= 95 ;
lut [ 548] <= 96 ;
lut [ 549] <= 97 ;
lut [ 550] <= 99 ;
lut [ 551] <= 100;
lut [ 552] <= 102;
lut [ 553] <= 103;
lut [ 554] <= 105;
lut [ 555] <= 106;
lut [ 556] <= 108;
lut [ 557] <= 109;
lut [ 558] <= 111;
lut [ 559] <= 112;
lut [ 560] <= 114;
lut [ 561] <= 115;
lut [ 562] <= 117;
lut [ 563] <= 118;
lut [ 564] <= 120;
lut [ 565] <= 122;
lut [ 566] <= 123;
lut [ 567] <= 125;
lut [ 568] <= 127;
lut [ 569] <= 128;
lut [ 570] <= 130;
lut [ 571] <= 132;
lut [ 572] <= 133;
lut [ 573] <= 135;
lut [ 574] <= 137;
lut [ 575] <= 138;
lut [ 576] <= 140;
lut [ 577] <= 142;
lut [ 578] <= 144;
lut [ 579] <= 145;
lut [ 580] <= 147;
lut [ 581] <= 149;
lut [ 582] <= 151;
lut [ 583] <= 152;
lut [ 584] <= 154;
lut [ 585] <= 156;
lut [ 586] <= 158;
lut [ 587] <= 160;
lut [ 588] <= 162;
lut [ 589] <= 163;
lut [ 590] <= 165;
lut [ 591] <= 167;
lut [ 592] <= 169;
lut [ 593] <= 171;
lut [ 594] <= 173;
lut [ 595] <= 175;
lut [ 596] <= 177;
lut [ 597] <= 178;
lut [ 598] <= 180;
lut [ 599] <= 182;
lut [ 600] <= 184;
lut [ 601] <= 186;
lut [ 602] <= 188;
lut [ 603] <= 190;
lut [ 604] <= 192;
lut [ 605] <= 194;
lut [ 606] <= 196;
lut [ 607] <= 198;
lut [ 608] <= 200;
lut [ 609] <= 202;
lut [ 610] <= 204;
lut [ 611] <= 206;
lut [ 612] <= 208;
lut [ 613] <= 210;
lut [ 614] <= 212;
lut [ 615] <= 214;
lut [ 616] <= 216;
lut [ 617] <= 218;
lut [ 618] <= 220;
lut [ 619] <= 222;
lut [ 620] <= 224;
lut [ 621] <= 226;
lut [ 622] <= 228;
lut [ 623] <= 229;
lut [ 624] <= 231;
lut [ 625] <= 233;
lut [ 626] <= 235;
lut [ 627] <= 237;
end
对应的波形如下,

在生成正弦波的Verilog代码中,我们用time_cnt 来代表时间的变化,
reg [1:0]image_cnt;
reg [7:0] time_cnt;
always@(posedge
clk or negedge rst_n)
begin
if(!rst_n)
begin
image_cnt <= 0;
time_cnt <= 0;
end
else if(delay_0S5_flag)
begin
image_cnt <= 2'b10; //image_cnt <= image_cnt + 1'b1;
time_cnt <= time_cnt + 1'b1;
if(time_cnt >= 100)
time_cnt <=0;
end
else
begin
image_cnt <= image_cnt;
//time_cnt <= time_cnt + 1'b1;
end
//image_cnt <= 3;
end
每间隔0.5秒,对波形刷新一次,
//0.5S Delay
reg [27:0] delay_cnt;
//localparamDELAT_TOP 50_000000/2
always@(posedge
clk or negedge rst_n)
begin
if(!rst_n)
delay_cnt <= 0;
else
delay_cnt <= (delay_cnt <
DELAY_TOP - 1'b1) ? delay_cnt + 1'b1 : 28'd0;
end
wiredelay_0S5_flag = (delay_cnt == DELAY_TOP -
1'b1) ? 1'b1 : 1'b0;
以下代码实现波形生成,
reg [23:0] lcd_data2;
reg [15:0] y_time_rem;
always@(posedge
clk or negedge rst_n)
begin
if(!rst_n)
lcd_data2 <= 0;
else
begin
//lcd_data2 <= lcd_xpos *
lcd_ypos *time_cnt;
y_time_rem=(lcd_ypos+20*time_cnt)%628;
//if(lcd_xpos
>(lut[lcd_ypos+time_cnt]-2) &&
lcd_xpos < (lut[lcd_ypos+time_cnt]+2) )
if(lcd_xpos >(lut[y_time_rem]-2)
&& lcd_xpos <
(lut[y_time_rem]+2) )
lcd_data2 <= `RED;
else
lcd_data2 <= `BLACK;
end
end
其中的主要是一次求余运算和一次坐标判断。如果计算认为该坐标点在正弦波位置上,就显示红色,否则作为背景,显示为黑色。
根据这段代码,实现的正弦波LCD显示视频如下。
实验结果说明,高云GW5AT-LV60 FPGA的图像开发板,结合LCD显示屏,能够方便的实现波形显示和动态更新,可用于波形实时显示。