集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4211|回复: 24

5 分钟学会使用CPLD

[复制链接]
lcytms 发表于 2016-9-9 17:16:21 | 显示全部楼层 |阅读模式
5 分钟学会使用CPLD

来源说明:http://www.00ic.com/Download/6cc19d05628bd8bf.html

附件有1个:
1.  learn to use CPLD.pdf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:21:49 | 显示全部楼层
5 分钟学会使用CPLD

当今社会,随着电子行业的发展,大规模集成电路的运用越来越普遍,用CPLD/FPGA来开发新产品是当前很多实际情况的需求。在此本人结合到自己的所学,利用业余时间草写了一个简单的使用说明,不要求有丰富经验的大虾来驻足观望,只希望对吾辈刚入门的菜鸟们起到一个抛砖引玉的作用。由于水平有限,文中错误在所难免,望各位提出宝贵的意见。

1. 首先请准备一套简单的CPLD 原理图。在此我们准备了如下所示的简单一个系统图。晶体用 10M 的有源晶体,可以在线下载的JTAG 接口。电源用5 转3.3V 的电源模块AS1117。1 个1K 的排阻。8 个发光管在程序运行时轮流点亮。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:22:22 | 显示全部楼层
2.安装XILINX 的集成编译软件ISE5.0 或6.0。因为ISE 在运行时比较消耗计算机的内存,所以要求计算机配置符合相关的要求,高一点的配置,不至于在运行时死机。
 楼主| lcytms 发表于 2016-9-9 17:24:01 | 显示全部楼层
本帖最后由 lcytms 于 2016-9-9 17:25 编辑

3.准备一小段verilog hdl 编写一段小代码,主要用来验证系统板的正确。
其中也可以用 VHDL 来编写,考虑到verilog hdl 比较接近C 语言,对初级学者来说,相对所花时间较短,上手较快。在此我推荐学verilog hdl。具体的参考书可以看下面的提示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:30:10 | 显示全部楼层
4. 此我们用下面的一小段代码作为范例:其功能是驱动8 个发光管轮流点亮,因为是采用
了10M 频率晶体的边沿触发,所以速度很快,为了使我们肉眼能够看的清楚其工作的
流程,我们在里面安放了一个计数器,计数器计每次满一次就点亮一个发光管,依次类
推。。。。。。其源程序如下:
/* 流水灯的Verilog-HDL 描述 */
module LEDWATER(reset,CLK,LED);
        input reset, CLK;
        output [7:0] LED;
        reg [7:0] LED;//=8'b11111111;
        reg [17:0] buffer;//=0;
        reg exchange;
        always@(posedge CLK)
                if(reset==0) //如果复位了就熄灭全部的灯
                        begin
                                LED=8'b1111_1111;
                                buffer=0;
                                exchange=0;
                        end
                else
                        begin
                                if (exchange==0)
                                        begin
                                                buffer=(buffer +1);
                                                if ( buffer == 17'b111111111111111111111111)
                                                        begin
                                                                buffer=0;
                                                                LED=(LED-1);
                                                                if(LED==8'b0000_0000)
                                                                        begin
                                                                                LED=8'b1111_1111;
                                                                                exchange=1;
                                                                        end
                                                        end
                                        end
                                if(exchange==1)
                                        begin
                                                buffer=(buffer +1);
                                                if ( buffer == 17'b111111111111111111111111)
                                                        begin
                                                                buffer=0;
                                                                LED=(LED>>1);
                                                                if(LED==8'b00000000)
                                                                        begin
                                                                                LED=8'b1111_1111;
                                                                                exchange=0;
                                                                        end
                                                        end
                                        end
                        end
endmodule
注意:VERILOG HDL 的代码编写风格,begin end 代替了C 语言中的大括号{}。
 楼主| lcytms 发表于 2016-9-9 17:31:19 | 显示全部楼层
5. 运行 ISE5.0 的编译程序,其打开时的界面如下:
新建立一个文件,将上面的代码粘贴上面,保存为 liushui.v。注意其后缀名为*.V。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:32:34 | 显示全部楼层
6.建立工程项目文件。
最好将verilog hdl 源文件和工程项目文件放在一个文件包里。便于管理和查找。这里我们放在D:\cpld\liushui 下面。(注意在文件目录路径下不要包含文字,避免后面编译出错)。其中综合工具用ISE 自带的XSTverilog 工具。如下图所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:33:45 | 显示全部楼层
7.点击确定出现如下画面,出现工程项目名称和器件类型,接下来的工作就是准备在工程项目文件中加入HDL 的源文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:35:56 | 显示全部楼层
8.将鼠标移动到工程项目,点击右键,选择add source:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2016-9-9 17:37:00 | 显示全部楼层
9.在liushui 文件包里面选折要假如的liushui .v 文件,就意味着把HDL 格式的源文件加入到了工程项目中了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 23:48 , Processed in 0.068084 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表