第二种:建立TCL文件进行管脚分配。这种方法比较灵活,是比较常用的。
这种方法具有分配灵活,方便快捷,可重用性等多方面优点。方法如下:
alnico选择Projects菜单项,并选择Generate tcl file for project选项,系统会为你自动生成相应文件,然后你只要向其中添加你的分配内容就可以了。
还有一种方法就是直接用new ,新建一个TCL文件即可,具体不再细讲。
下面是我分配的内容一部分,可供大家参考。
t_global_assignment -name FAMILY Cyclone
t_global_assignment -name DEVICE EP1C3T144C8
t_global_assignment -name ORIGINAL_QUARTUS_VERSION 8.0
t_global_assignment -name PROJECT_CREATION_TIME_DATE "19:14:58 JANUARY 06, 2009"
t_global_assignment -name LAST_QUARTUS_VERSION 8.0
t_global_assignment -name USE_GENERATED_PHYSICAL_CONSTRAINTS OFF -ct
ion_id eda_palace
t_global_assignment -name DEVICE_FILTER_PACKAGE "ANY QFP"
t_global_assignment -name LL_ROOT_REGION ON -ction_id "Root Region"
t_global_assignment -name LL_MEMBER_STATE LOCKED -ction_id "Root Region"
t_global_assignment -name DEVICE_FILTER_PIN_COUNT 144
t_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8
t_global_assignment -name FITTER_EFFORT "STANDARD FIT"
t_global_assignment -name BDF_FILE topDesign.bdf
t_global_assignment -name QIP_FILE nios.qip
t_global_assignment -name QIP_FILE altpll0.qip
t_global_assignment -name USE_CONFIGURATION_DEVICE ON
t_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
t_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -ction_id Top
t_global_assignment -name PARTITION_COLOR 14622752 -ction_id Top
t_location_assignment PIN_72 -to addr[7]
t_location_assignment PIN_69 -to addr[6]
t_location_assignment PIN_70 -to addr[5]
t_location_assignment PIN_67 -to addr[4]
t_location_assignment PIN_68 -to addr[3]
t_location_assignment PIN_42 -to addr[2]
t_location_assignment PIN_39 -to addr[1]
t_location_assignment PIN_40 -to addr[0]
t_location_assignment PIN_48 -to data[15]
t_location_assignment PIN_47 -to data[14]
t_location_assignment PIN_50 -to data[13]
t_location_assignment PIN_49 -to data[12]
t_location_assignment PIN_56 -to data[11]amalgam
t_location_assignment PIN_55 -to data[10]
t_location_assignment PIN_58 -to data[9]
t_location_assignment PIN_57 -to data[8]
t_location_assignment PIN_61 -to data[7]
t_location_assignment PIN_62 -to data[6]
t_location_assignment PIN_59 -to data[5]
t_location_assignment PIN_60 -to data[4]
t_location_assignment PIN_53 -to data[3]
t_location_assignment PIN_54 -to data[2]
t_location_assignment PIN_51 -to data[1]
t_location_assignment PIN_52 -to data[0]
t_location_assignment PIN_16 -to clk
t_location_assignment PIN_38 -to cs
t_location_assignment PIN_141 -to led[3]
t_location_assignment PIN_142 -to led[2]
t_location_assignment PIN_143 -to led[1]
t_location_assignment PIN_144 -to led[0]pacman
t_location_assignment PIN_33 -to ret_n
t_location_assignment PIN_41 -to rd
t_location_assignment PIN_71 -to wr
美剧黑名单t_location_assignment PIN_105 -to mosi
t_location_assignment PIN_107 -to sclk
t_location_assignment PIN_106 -to ss
t_location_assignment PIN_73 -to motor[0]
t_location_assignment PIN_74 -to motor[1]wakanda
t_location_assignment PIN_75 -to motor[2]
t_location_assignment PIN_76 -to motor[3]
hamonyt_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -ction_id Top
# Commit assignments
export_assignments
FPGA 点滴
(2008-09-30 09:44:45)
布莱克 莱弗利转载
以此记录心得以及重要的知识点。
1.FPGA器件是Xilinx公司于1985年首家退出的,它是一种新型的高密度PLD,采用CMOS-SRAM工艺制作。FPGA的结构与门阵列PLD不同,其内部有许多独立的可编程逻辑模块组成,逻辑模块之间可以灵活的相互连接。FPGA结构一般分为三部分:可编程逻辑模块、可编程I/O模块和可编程内部连线。配置数据存放在片内SRAM或熔丝图上,基于SRAM的FPGA器件工作前需要从芯片外部加载配置数据。配置数据可以存储在片外的EPROM或者计算机上,设计人员可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场可编程。
目前绝大多数FPGA器件都采用了基于SRAM的查找表结构。查找表本质上就是一个RAM。FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有四位地址线的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路所有可能的结果,并把结果事先写入RAM.这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
2.VHDL语言中,由于BIT数据类型只能取值逻辑量‘0’或‘1’,而在实际电路设计和仿真中,还存在象高阻态,不定值等其他状态,故IEEE STD1164标准定义了STD_LOGIC数据类型,包含了9种不同值。
3.实体说明一般由类属参数和端口说明两部分组成,端口说明很熟悉了,说一下类属说明:类属参数说明必须放在端口说明之前,用于设置实体和外部电路之间的静态参数。设计者可以通过改变这些参数来对整个设计实体进行修改。在元件例化中,应用与此相同。
4.rtl视图,其实就是寄存器级传输图,它在综合及布局布线前就生成了,并非设计的最终电路结构,是设计输入的最忠实的体现,它的主要作用是帮助设计者检查设计输入中的问题。
5.跨时钟阈问题的解决:比方说设计输入有2M和3M两个时钟,那么可以采用两种办法,第一个用异步FIFO,第二个是加一个6M的全局时钟,然后让2M和3M做为使能端。
6.每对信号赋值一次,延迟一个时钟,比方说a<=b,c<=a;那么b相对于a延迟一个时钟,a相对于c又延迟一个时钟。
7.对于电平信号输入的,如读写请求信号,那么怎么检测它们的边沿,以达到边沿触发的目的呢。有一个方法,设输入为wrreq,则有Q1 <= WRREQ; Q2 <= Q1;Wrpul <= Q2 and not(Q1);此方法即为当wrreq下降沿时,wrpul为1,后续判断wrpul即可。Q1 <= WRREQ; Q2 <= Q1;Wrpul <= Q1 and not(Q2);此时当wrreq上升沿时,wrpul为1。
8.在用modelsim进行仿真时,要注意赋初始值,即rst='1'时要都赋值,要不然会出现红线的不定态。
bungalow9.用ISE调用modelsim进行仿真相对来讲还是比较方便的,它可以直接建立相应的testbench模块,即verilog test fixture 和 vhdl test bench。用ISE10.1 和 modelsim6.3f配合使用的时候,vhdl 语言没有问题;但是用verilog写的模块,调用modelsim 的时候会提示鲸奇之旅
一些库的错误,但是这时候直接新打开modelsim,并change directory 到此目录下,则能正确进行。又重新在ISE下编译了一下verilog HDL的仿真库,问题解决,回忆了一下可能是在我笔记本上当时编译Modelsim仿真库的时候,只编译了VHDL的。
coup detat
10.ISE中直接编译modelsim仿真库:首先在source for project 中选中器件,然后在下面process中点开Design Entry Utilities,然后双击compile HDL Simulation Libraries即可。
11. tsu : tup time,
定义输入数据讯号在 clock edge 多久前就需稳定提供的最大须求;以 正缘触发(positive edge trigger)的D flip-flop 来举例就是 D 要比 CLK 提前 tsu 时间以前就要准备好,此 flip-flop 就能于某特定之频率下正常工作.