我的Verilog学习笔记(5)

2019-08-29 18:44

SHIFT

//注释掉后一直移位

default

endcase end endmodule

end

end :begin

if(shift_count<=5'b10000) begin if(shift_freq==8'h50) begin shift_freq<=8'h00; lcd_rs<=0; lcd_rw<=0; lcd_data[7:4]<=4'b0001; lcd_data[3]<=SEL_WORD; lcd_data[2]<=LEFT_SHIFT; lcd_data[1:0]<=2'b00;

shift_count<=shift_count+1;

end else begin shift_freq<=shift_freq+1; lcd_rs<=1; lcd_rw<=1; lcd_data<=8'h00; end end else begin stage<=START; ddram_address<=8'h80; shift_flag<=1; shift_freq<=8'h00; shift_count<=5'b0_0000; flag<=0; lcd_rs<=1; lcd_rw<=1; end end :begin stage<=STOP; end

由于我们需要直接下到开发板上所以,需要对芯片进行管脚约束:(注意管脚约束文件中使用#做注释符) 打开

,编写代码:

NET \ LOC = \ ;

NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ;

然后Enjoy yourself!(注意:上面的管脚约束是根据我自己的板子所写的,我们必须根据实际情况写,不然最终是出不了结果的— —|||)

等等,讲到生成bit流文件(配置文件),也就是最终需要下载到FPGA里面的,我们可以选择下到FPGA中(直接配置FPGA),但这个在重新上电后,程序就没了,我们还可以下到专用的PROM中,这样可以永久保存起来。下面我们一起看如何使用IMPACT直接生成.xcs文件。

首先我们打开IMPACT后会自动弹出窗口,

我们新建IMPACT工程,然后有如下画面:

第一个是使用电缆检测设备,一般可以检测到我们所用的FPGA,如果你知道所用的PROM型号,可以直接选择PROM文件类型。

由于我使用的是第三方的SPI PROM,选3rd—Party SPI PROM,如果是Xilinx专用芯片,则选第一个。

紧接着就是选择PROM容量,最后出现要求选择生成的.bit文件,以检测FPGA芯片型号,最后出现如下界面:

然后点击Flows栏中的

直接生成.xcs文件格式,我们就可以下载到

PROM了,而且,这样的设置只需要一次性的设置ISE就可以识别了。

小结:通过这节的实验,初步了解了状态机的使用和进一步完善FPGA开发流程。

反思与补充:在后面的学习中,状态机的状态码通常使用格雷码和独热码,以防止状态之间出现跳转错误。

我们由格雷码与独热码的编码特性进行分析:格雷码是相邻码之间只有一位数据变动,而独热码则是每个状态规定只有某一位为1或者0。如果在一个没有分支的(按一定状态顺序运行)结构,使用格雷码可以减少资源开销(格雷码可表示状态数为2N而独热码表示状态数为N),但当系统状态跳转次数繁多,则只是相邻码之间有一位数据变动的格雷码也很难消除跳转错误的出现,而独热码就能很好的解决问题。

5.Chipscope的使用 相信大家都看过一些手册或者教程,上面都提到过使用Chipscope的方法,也想大家也自己动手做过,但书上的教学方法很乏味,完全是跟着流程做一遍还是一头雾水,完全不知道一些选项的功能,一些书籍更是以讹传讹,把一些错误信息给流传下来,下面我们将逐步深入了解Chipscope的使用。

教程上都很详细的介绍了什么是icon,什么是vio什么是ila什么是ATC2,但再怎么解释都没有官方的使用手册详细,所以推荐大家查看各种核的使用手册。

在生成核的时候弹出设置页面,点击左下角的

Data Sheet,就会弹出这个核的官方pdf使用手册或者说明书。 下面我们来看下各个核的选项含义。

View

按照需要设置好,会自动生成需要的核,我们再讲核进行实例化就可以使用了。(其自动映射到网表中)

核的HDL原型可以通过

查看。

module shift_wave(clk,rst,out); input clk,rst; output [7:0]out; reg [7:0] out; parameter data = 8'b11110000; always @ (posedge clk or negedge rst) begin

中的View HDL Functional Model


我的Verilog学习笔记(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国3G门户招商运营 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: