需求
在进行FPGA设计时,时常需要编写ucf文件对管脚与信号进行约束,而提供给我们的硬件设计信息经常是excel表格,包括因此需要将excel内的内容转换至ucf中,这是一个巨大的工程,因此编写了一个matlab来批处理这些信息并自动编写ucf管脚约束。
Excel内容
这里就随便举个例子
Matlab转换
clear all;
close all;
clc;
%定义各类数值
xls_filename = '电路引脚.xlsx';
ucf_filename = 'GNSS.ucf';
IO_Type_1_8 = '1.8V';%电平的定义
IO_Type_3_3 = '3.3V';
FormatSpecLoc = 'NET "%s" LOC = %s;\n';%输出的UCF格式
FormatSpecIO = 'NET "%s" IOSTANDARD = LVCMOS%s;\n';
%读取数据
[num,txt,raw] = xlsread(xls_filename);
fid = fopen(ucf_filename,'w');
[Row,Col] = size(raw);
%转换数据格式至数组矩阵
for i = 1:1:Col
Str_Xls(:,i) = string(raw(:,i));
end
%打印UCF文件
for i = 1:1:Row
fprintf(fid,FormatSpecLoc,Str_Xls(i,1),Str_Xls(i,2));
if strcmp(Str_Xls(i,3),IO_Type_1_8)
Voltage_String = '18';
elseif strcmp(Str_Xls(i,3),IO_Type_3_3)
Voltage_String = '33';
end
fprintf(fid,FormatSpecIO,Str_Xls(i,1),Voltage_String);
end