首先感谢硬禾信息科技有限公司和学校给我们提供的宝贵机会。
在寒假里,由于身边只有基于16管脚的FPGA最小系统的简易口袋仪器DIY套件,并且过年期间回老家没有电脑,所以未能及时观看直播,只能观看回放。这导致了我未能及时熟悉仪器,并且有很多问题都没有能及时问老师,为后面的学习带来了不便。
而在下载软件时,虽然观看了如何下载软件的视频,但是第一次尝试仍然未能成功地在官网上下载软件。最终从百度网盘下载软件,最开始不知道要申请免费许可证,最后在学长学姐的帮助下,成功地打开了软件。
拿到软件和芯片的我格外好奇,基于芯片自带的代码,摁不同的摁键能够改变显示屏最后一列的数字或字母,这让我十分激动。
通过直播回放,我学会了如何电灯,这给了我莫大的鼓励,然而在后面的学习中我却遇到了诸多问题。
在更改管脚的时候,我不知道怎么对应管脚,尝试测试出对应的管脚,但是这样太复杂。然后我误打误撞在电脑上打开了仪器的配置说明,从而解决了这一问题 。
另外,由于不知道实验的验证要在实验室进行,所以在开学后第一个星期周末,由于实验室统一关门,没有申请实验室,在第二个星期才申请到实验室。这是由于不清楚实验室制度导致了进度拖延。
关于代码,由于完全不清楚Diamond软件的语法,我别无它法,只能通过复制网上的经典案例的代码,我尝试了百度文库、硬禾学堂、CSDN等多个软件,但是我很快发现,我搜到的代码大多不是基于Diamond软件写的,即使是基于Diamond软件所写,也有些许错误,无法成功运行。而由于我对Diamond软件的不熟悉,我只能硬着头皮尝试着改错,期间咨询了很多学长学姐,但是还是失败了,四道题中有三道题的代码都有错误,更别提实验了。
在解决信号发生器这一问题时, 根据题目需要,我要完成复位、调频、变更波形,但是由于代码错误,我最终只完成了方波的代码编写,随后我尝试着跟着老师试着用program来烧制,但是未能成功。于是我们采用了复制粘贴JED文件到芯片上解决了烧制的问题,但是此时,我们的仪器显示屏都是不亮的,和冯款培同学交流和得知她也是这个现象,商讨后我们决定跳过这个问题。但是在连接示波器后我的波形显得太过随意,锯齿很多。通过更改代码等办法我最终却得到了10kHz、1的V正弦波,并且摁下摁键无反应。
本次竞赛我的失败很大程度上来自于我对软件的不熟练,对代码的不熟悉,以后我要加强对代码和软件的练习,再次感谢主办方和学校能够给我这次机会,谢谢!
附件:
信号发生器代码:
module timer(rst, clk, count);// a counter
parameter size = 32;
input rst;
// These inputs/outputs represent
input clk;
// connections to the module.
output [size-1:0] count;
reg [size-1:0] count=0; // Signals assigned
// within an always
// (or initial)block
// must be of type reg
// The always statement below is a parallel
// execution statement that
// executes any time the signals
// rst high to low or clk transition from low to high
always @ (posedge clk or negedge rst )
begin
if (!rst) // This causes reset of the cntr
count = 0;
else if(count<32'hFFFFFFFF)
begin
count = count + 1'b1;
end
end
endmodule