示范程序
seg7_test.v
/*
* seg7 x 8 查找表测试文件
*/
module seg7_test(
input CLOCK_50,
output [7:0] SEG7_DIG,
output [7:0] SEG7_SEG
);
seg7_8_LUT u0(
.i_clock(CLOCK_50),
.i_turn_off(8'b1100_0000), // 熄灭位[此处取第7、6位
.i_dp(8'b0000_0100), // 小数点位[此处取第2位
.i_data(32'hAB_CDEF), // 欲显数据[16进制
.o_dig(SEG7_DIG),
.o_seg(SEG7_SEG)
);
endmodule
此例化文件共需要17个管脚。接下来我和大家一起讨论使用QII分配管脚的两种常用方法。
方法一:Import Assignments
步骤1:使用记事本或类似软件新建一个txt文件(或csv文件),按如下格式编写管脚分配内容(不同的开发版,其内容也不同,本文以我使用的艾米电子2C8开发版为范例)。
注意:To和Location两个关键字中间有一个半角逗号。
图1 pin.txt
步骤2:在QII软件中,选择“Assignments —— Import Assignments”。如图所示,导入xxx.txt文件即可。
图2 导入pin.txt
步骤3:在QII软件中,选择“Assignments —— Pin”标签(或者点击按钮) ,打开Pin Planner,验证管脚是否分配正确。
图3 验证管脚是否分配正确
方法二:source xxx.tcl
步骤1:在QII软件中,使用“Assignments —— Remove Assignments”标签,移除管脚分配内容,以确保此次操作,分配的管脚没有因为覆盖而出现错误的情况。
图4 Remove Assignments
注:在未执行任何管脚分配操作新工程中,可跳过步骤1。
步骤2:使用记事本或类似软件新建一个tcl文件,按如下格式编写管脚分配内容(不同的开发版,其内容也不同,本文以我使用的艾米电子2C8开发版为范例)。
注意关键字set_location_assignment和-to的用法。
图5 pin.tcl
步骤3:执行pin.tcl
方法1:在QII软件中,使用“View —— Utility Windows —— Tcl Console”标签,打开Quartus II Tcl Console。执行语句:
图6 source pin.tcl
方法2:在QII软件中,使用“Tools —— Tcl Scripts …”标签,打开Tcl Scripts。
图7 Tcl Scripts
选择pin.tcl,选择“Run”标签,执行Tcl文件。
步骤4:同方法1的步骤3。