废墟里偶然看到一块小测试板:
正反面拍个照:
看到主控芯片为XLINX系列CPLD-FPGA,型号为XC9672XL-VQ44B…,速度等级-10C,外挂50MHz晶振,5个LED灯,丝印N05B的芯片为LM1117I-3.3V稳压电源。
1、通过观察和万用表测试,查找XC9672XL芯片手册,复刻出原理图,找出JTAG插针位置和外挂晶振引脚:
2、插上FPGA下载器,连接JTAG,然后使用Vivado新建工程,发现没有XC9672XL型号:
XC9672XL为可编程逻辑器件CPLD,内部含有掉电不易失的EEPROM存储结构,其与或阵列结构适于实现大规模组合功能,延时小且可预测。Vivado前身ISE更新到14.7版本就不再更新,仅支持6系列或者部分初代7系列FPGA芯片以及CPLD,而后续Vivado支持7系列FPGA芯片以及新生代ZYNQ芯片。
3、准备下载ISE 14.7,到AMD官网找到安装包,ISE14.7最高支持win10系统,不支持win11。14.7Windows10版本适用于虚拟机安装win10,而下面其他版本写着支持win7及xp系统。
后来终于找到一个ISE 14.6的安装包可以直接支持win10,搬运软件安装教程(注意教程中路径更改很重要,不然软件使用过程中会有问题):
4、使用ISE建立一个完整的工程,参考教程如下:
设置板卡信息,Verilog语言,简单编写一个流水灯测试程序,并进行编译:
module IO_Control(
output reg[4:0] led,//输出5个led灯
input CLK //输入50MHz时钟
//input rst_n
);
reg[31:0] timer;//定义一个32位计数器
always@(posedge CLK)
begin
if(timer==32'd49_999_999)//从0计数到49999999时为1秒,计数器清零
timer<=32'd0;
else
timer<=timer+32'd1;//计数器加1
end
always@(posedge CLK)
begin
if(timer==32'd9_999_999) //控制led流水灯
led<=5'b00001;
else if(timer==32'd19_999_999)
led<=5'b00010;
else if(timer==32'd29_999_999)
led<=5'b00100;
else if(timer==32'd39_999_999)
led<=5'b01000;
else if(timer==32'd49_999_999)
led<=5'b10000;
end
endmodule
使用仿真器时若出现can’t link to the design错误,参照如下删除collect2.exe文件:
5、点击User Constraints下Floorplan IO-Pre-Synthesis使用.ucf文件进性引脚约束:
6、点击Configure Target Device进性综合,Assign New Configuration File...后发现没有bit文件生成,CPLD系列生成的是jed文件,直接选择.jed文件即可:
7、添加jed文件后右击发现没有Program选项,这时需要更改几个dll文件:
8、Cable Reset一下,然后右击Program烧写程序:
9、烧写成功~