一、环境安装配置
两个开发环境 ISE和modelsim ,我安装的是ISE14.7(最新版,不再更新,由于Spartan-7及以上才可以使用vivado,故只能使用ISE)和modelsim10.1c(注意一定有c)
二、流水灯程序编写学习
因为我没有verilog基础,并且是初次接触FPGA开发板,没找到直接的教程,故开始打算先学一点verilog的基础知识,然后尝试独立模仿编写程序
1.基础知识
- 数据类型:两种,线网wire数据类型和寄存器数据类型
- 三种方式对设计建模:行为描述方式、数据流方式、结构化方式
- HDL:hardware design languaga,主流是verilog
- Verilog有基本的描述单位——模块,有基本的语法,类似于C语言,有变量申明declarations和描述性语句,如下半加器代码:
module HalfAdder (A,B,Sum,Carry); input A,B; output Sum,Carry; assign #2 Sum=A^B; assign #5 Carry=A&B; endmodule
解释:module和endmodule是模块的开始和结束标志;module后面跟着自定义的名字,括号内部是参数,个人觉得描述性语句就是逻辑关系的描述;#2表示延时两个时间单位,至于时间单位是多少物理时间由个人定义。
- 描述方式
- 数据流描述方式——连续赋值语句:注意是某个值赋值给wire型的变量才行,且有指定的时延才行,(在时延后赋值给左边的变量,一般数据流方式由功能画出逻辑电路就可以进行编码)疑问:数据流方式的连续赋值语句是并发执行的但是真是的数字电路肯定存在时延怎么办
- 行为描述方式:两种语句初始化语句和always语句(重复执行;注意:只有寄存器类型的变量可以在这两种语句中被赋值
- 结构化描述形式:使用特定的原语(就是默认verilog中系统存在的命令执行特定功能 :例如 xor and等待