本文共 1286 字,大约阅读时间需要 4 分钟。
1本文介绍应用Verilog进行CPLD设计的一个完整流程。
电路图如下:引脚47、45、43、40、37、35、33和LED1-LED7相连接,高电平点亮,这个例程仅完成7个发光二极管全部点亮的任务。
1、点击File-New菜单,在出现的对话框中,选择Verilog HDL File。
2、在新建文件中输入如下程序,程序的具体功能稍后解释。
module PassThroughBottomBoard(led); output[7:1] led; assign led = 7'b1111111; endmodule3、点击工具栏的Start Compilation进行程序编译,如有错误,对比上述程序进行更改,直到编译正确。
4、双击Project Navigator窗体中的器件型号,打开Device窗体。
5、点击Device窗体的Device and Options按钮,打开Device and Options窗体。
6、在窗体的左面选择Unused Pins(未使用引脚),在窗体的右面选择As input tri-stated(将其当作输入的三态对待),这点设置很重要,由于我们进行项目不能一次将所有的引脚配置完,如果未使用引脚接地或这接电源,而外围电路恰巧与之相反,则会造成线路板短路的严重后果。
7、点击工具栏的Pin Planner进行引脚布局。
8、按照电路图进行正确的引脚输入,如下图所示,正确输入后,可以关闭该窗体。
9、重新进行编译,这次编译正确后,就可以进行程序下载了,点击Programmer图标,打开下载窗体。
10、在Programmer窗体中,正确选择下载器,然后勾选Program/Configure选项,点击Start按钮,就可以进行下载了,下载成功后,可看见100%(Successful)提示。
11、如果一切正常,可看见7个发光二极管全部点亮。
程序注释:
1、module PassThroughBottomBoard(led);
此句是模块声明,顶层模块实体名需要与工程名维持一致,模块名后面小括号中的内容表明端口,这个例程中我们指定了1个端口,名字为led,端口并不限于1个引脚,这点与单片机及其相似。模块声明的最后要加入分号,这点极容易忘记。
2、output[7:1] led;
此句的含义是指明端口led为输出引脚,共7位,最高位为7,最低位为1。这样的设计是为了与电路图位置一致,易于程序的理解。
3、assign led = 7'b1111111;
assign又称连续赋值语句,此句的含义是将led的7-1共7个引脚都赋值为高电平,就是点亮7个LED灯。大家在这里注意的是用assign赋值的语句是并行执行的,就是如果不考虑们级之间的延时,这些语句会同时完成的,或者理解为瞬间完成。7'b是Verilog的常量表示方式,7表示位宽,b表示二进制。同样的还可以写为o、d、h,分别表示八进制、十进制和十六进制。
4、endmodule
此句表示模块的结束,不带分号。
转载请注明出处:CSDN:。