|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 dragongfly 于 2022-9-26 16:22 编辑
; B+ W, p5 N8 V
/ J9 F, ~* D% ~9 `# W当今社会,随着电子行业的发展,大规模集成电路的运用越来越普遍,用 cpld/FPGA来开发新产品是当前很多实际情况的需求。在此本人结合到自己的所学,利用业余时间草写了一个简单的使用说明,不要求有丰富经验的大虾来驻足观望,只希望对吾辈刚入门的菜鸟们起到一个抛砖引玉的作用。由于水平有限,文中错误在所难免,望各位提出宝贵的意见。
6 o2 I( {# i; O* x
5 L/ C& x8 n* e; o2 g* e1. 首先请准备一套简单的 CPLD 原理图。在此我们准备了如下所示的简单一个系统图。晶体用 10M 的有源晶体,可以在线下载的 JTAG 接口。电源用 5 转 3.3V 的电源模块AS1117。1 个 1K 的排阻。8 个发光管在程序运行时轮流点亮。
2 ?1 R5 o3 U( v7 J% |: M
) D7 q0 C# X* U( ]7 `' R
2.安装 Xilinx 的集成编译软件 ISE5.0 或 6.0。因为 ISE 在运行时比较消耗计算机的内存,所以要求计算机配置符合相关的要求,高一点的配置,不至于在运行时死机。3 L9 K/ ~0 V# y* a1 U9 Q
3.准备一小段 verilog hdl 编写一段小代码,主要用来验证系统板的正确。
) G6 Q; O: {7 L0 j0 y* q其中也可以用 VHDL 来编写,考虑到 verilog hdl 比较接近 C 语言,对初级学者来说,相对所花时间较短,上手较快。在此我推荐学 verilog hdl。
7 ~ {& |! n/ \8 A% B4 k4. 此我们用下面的一小段代码作为范例:其功能是驱动 8 个发光管轮流点亮,因为是采用了 10M 频率晶体的边沿触发,所以速度很快,为了使我们肉眼能够看的清楚其工作的流程,我们在里面安放了一个计数器,计数器计每次满一次就点亮一个发光管,依次类推。其源程序如下: d, o- v1 O+ t3 b% W
/* 流水灯的 Verilog-HDL 描述 */
+ L2 ^5 o( D- E ~/ b( C1 @module LEDWATER(reset,CLK,LED);
8 x( b1 q: B. x input reset, CLK; 4 L% l9 g/ e+ z9 f; M& z
output [7:0] LED; * {* J: Q* W7 f4 {! r
reg [7:0] LED;//=8'b11111111; , J1 p# t6 O% {5 i/ m
reg [17:0] buffer;//=0;
3 q' x+ C# b5 [' x0 E( q reg exchange;
/ C+ H8 U1 e) ~" x! ~3 c always@(posedge CLK)
5 g; t9 X+ w6 }$ ^" ` c, t$ x if(reset==0) //如果复位了就熄灭全部的灯
& I# c- g8 f F, t3 i begin 2 u/ s5 Z; D3 h# S
LED=8'b1111_1111;
. h/ U" D+ q+ L ~+ S8 x buffer=0;
3 R+ ?9 ` w7 F- |! r2 j" \. g8 J exchange=0; - ^" B# Y2 U0 \ D$ o0 t! s6 s) b
end ! F& c/ j* y9 B1 ]- V/ E5 P
else * S; a# H! a1 H" g J
begin ' U6 L3 w+ M# B& [$ p D5 m+ t
if (exchange==0) $ |& N# t0 @1 @: f! w4 B0 [; ^5 h# ]
begin $ m g3 W e! o1 ^$ K8 v7 F# Q
buffer=(buffer +1);
. r( ?5 a% r9 V2 b% H: V- l( J......., j1 Z- O4 u; d7 s
& y- g V: q! L+ t, Q4 d+ E0 N' O/ V6 `
5. 运行 ISE5.0 的编译程序,其打开时的界面如下:
! T. D1 h; @, C
$ }2 P0 e" o* |# @2 q% ^/ H新建立一个文件,将上面的代码粘贴上面,保存为 liushui.v。注意其后缀名为*.V。0 ~2 `. [+ U) ^" U, n
6.建立工程项目文件。最好将 verilog hdl 源文件和工程项目文件放在一个文件包里。便于管理和查找。这里我们放在 D:\cpld\liushui 下面。(注意在文件目录路径下不要包含文字,避免后面编译出错)。其中综合工具用 ISE 自带的 XSTverilog 工具。如下图所示:
$ k# [5 D/ X( |
) r, D _2 R7 A3 q& }( {
7.点击确定出现如下画面,出现工程项目名称和器件类型,接下来的工作就是准备在工程项目文件中加入 HDL 的源文件。: N" u: P* G0 |9 F1 a2 ~- V7 r" d
! b+ O: B' T# z0 A" n1 R6 b# g5 ?3 a# |
" z9 E! P/ i6 W' d
( N9 O' T1 }7 M8 c c1 |0 Q/ d, w
|
|