Xilinx CPLD教程,Verilog入门:点亮LED灯

前言

这篇讲的不会非常细致,主要是说明下程序与实现的效果,方便熟悉c类语言的工程师了解Verilog到底是怎么样,以及前期硬件的准备

为什么用CPLD

CPLD和FPGA相比较,更简单,更便宜,更容易使用,当然性能更一般,但是却很适合入门Verilog因为不用花很多时间去配置。

使用平台、环境、开发板

这里我使用一套运行Windows7的电脑,它有LPT也就是并口,当然你可以使用并口转USB的设备来实现下载器的使用。

XC9572XL:XC9572的现代版本,VG44封装

 

LPT下载器:事实上这个是最适合的,不算很好用因为有点接触不良问题,但它相比较FPGA那边用的下载器来说,能正常下载到CPLD中

 这个东西其实里面没有什么特别的,两片74HC125加基本元件而已,你甚至可以轻松的打板自制

 

ISE 14.7:Xilinx早些时候的IDE环境,如今已经换成vivado但是它没有支持CPLD开发

 

iMpact:下载配置工具

 

说明

这里使用的是Verilog语言,类似于C但是很明显许多地方不能套用C的思维。类似C的地方有蛮多的,但是加上一些Verilog的操作后和C就没什么关系了。

先确定两个赋值方法,连续赋值和过程赋值,连续赋值就是把寄存器和输出接口连起来,过程赋值就是给寄存器赋值

比如下面这个是连续赋值,前面使用assign修饰

assign LED1=sr_led;

下面这个是过程赋值,使用的是【<=】这个符号 ,相比一下,过程赋值能放在always(这个类似于while(1)里面,而连续赋值是不可以的。同样,过程赋值不能放在initial和always外面而连续赋值可以

sr_led = 4'b1110;  //4表示4位数值,b表示二进制,数值为1110

 LED点灯,整个程序如下所示,可以看到输出有四个,输入有一个

module Main(
    output LED1,
    output LED2,
    output LED3,
    output LED4,
	 input iCLK
    );
reg sr_led=1;//寄存器sr_led
assign LED1=sr_led;//让LED1和sr_led这个寄存器连接,sr_led发生变动时候LED1也变化

always@(posedge iCLK)//always和initial一样都是并发执行的,多个always会一块启动
	sr_led <= 0;//赋值为0
	
endmodule

当然这里看出来,并没有对具体的引脚进行定义(FPGA里面叫做约束),所以这里就需要UCF文件来进行定义引脚

 

这个引脚约束和具体的开发板电路原理图有关系,我们需要引入时钟以及四个LED灯的引脚,它们分别位于Port1和31,32,33,34

 

根据上面的原理图,具体定义如下

NET "iCLK"  LOC = "p1"  ;
NET "LED1"  LOC = "p34"  ;
NET "LED2"  LOC = "p33"  ;
NET "LED3"  LOC = "p32"  ;
NET "LED4"  LOC = "p31"  ;

最终使用iMPACT来下载到XC9572里面

 

执行效果,左边一个LED是电源指示灯

 

总结

基本语法类似C但要搞清差别,比如赋值

UCF文件定义引脚,通常正确叫法是约束

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Xilinx CPLD配置引脚是指将CPLD芯片中的逻辑资源与外部引脚进行连接,以实现不同功能的输入输出。具体步骤如下: 1. 确定引脚规划:首先,需要根据设计需求确定每个引脚所承担的功能,如输入、输出、时钟、复位等。同时,还需要考虑引脚的电气特性,例如驱动能力、速度等,以及引脚的最大承载能力。 2. 打开Xilinx CPLD设计软件:选择适用的软件工具,例如ISE Design Suite,打开项目文件。 3. 创建新的约束文件:在软件工具中,选择“约束”或“约束编写器”选项,创建一个新的约束文件。 4. 编写约束:在约束文件中,通过编写约束描述语言如HDL Constraints Language(HDL约束语言),对引脚进行规划。 5. 指定引脚位置:根据约束文件,为每个引脚指定位置。可以手动指定引脚位置,也可以使用自动引脚布线功能来优化引脚位置。 6. 进行逻辑编程:根据设计需求,在软件工具中进行逻辑编程,包括逻辑设计、功能定义等。 7. 进行物理编程:将逻辑编程后的文件通过下载器下载到CPLD芯片中。 8. 验证引脚配置:使用外部电路或测试仪器,验证引脚配置是否达到预期效果,包括输入输出是否正常、时钟信号是否正确等。 总之,Xilinx CPLD引脚配置需要通过软件工具进行引脚规划和物理编程。合理的引脚配置可以实现设计的功能需求,并确保电路的正常工作。同时,注意遵守规范,设计合理的引脚布局,有助于提高电路的可靠性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值