博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Verilog学习笔记11:一个完整的工作流程
阅读量:2041 次
发布时间:2019-04-28

本文共 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;	endmodule
3、点击工具栏的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:

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-43》94.二叉树的中序遍历
查看>>
Leetcode C++ 《第175场周赛-1 》5332.检查整数及其两倍数是否存在
查看>>
Leetcode C++ 《第175场周赛-2 》5333.制造字母异位词的最小步骤数
查看>>
Leetcode C++ 《第175场周赛-3》1348. 推文计数
查看>>
Leetcode C++《热题 Hot 100-44》102.二叉树的层次遍历
查看>>
Leetcode C++《热题 Hot 100-45》338.比特位计数
查看>>
读书摘要系列之《kubernetes权威指南·第四版》第一章:kubernetes入门
查看>>
Leetcode C++《热题 Hot 100-46》739.每日温度
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
Leetcode C++《热题 Hot 100-57》139. 单词拆分
查看>>
Leetcode C++《热题 Hot 100-62》621. 任务调度器
查看>>
Leetcode C++《热题 Hot 100-65》207. 课程表
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
[Kick Start 2020] Round A 2.Plates
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>