




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二种:建立TCL文件进行管脚分配。这种方法比较灵活,是比较常用的。这种方法具有分配灵活,方便快捷,可重用性等多方面优点。方法如下:选择Projects菜单项,并选择Generatetclfileforproject选项,系统会为你自动生成相应文件,然后你只要向其中添加你的分配内容就可以了。还有一种方法就是直接用new,新建一个TCL文件即可,具体不再细讲。下面是我分配的内容一部分,可供大家参考。set_global_assignment-nameFAMILYCycloneset_global_assignment-nameDEVICEEP1C3T144C8set_global_assignment-nameORIGINAL_QUARTUS_VERSION8.0set_global_assignment-namePROJECT_CREATION_TIME_DATE"19:14:58JANUARY06,2009"set_global_assignment-nameLAST_QUARTUS_VERSION8.0set_global_assignment-nameUSE_GENERATED_PHYSICAL_CONSTRAINTSOFF-section_ideda_palaceset_global_assignment-nameDEVICE_FILTER_PACKAGE"ANYQFP'set_global_assignment-nameLL_ROOT_REGIONON-section_id"RootRegion"set_global_assignment-nameLL_MEMBER_STATELOCKED-section_id"RootRegion"set_global_assignment-nameDEVICE_FILTER_PIN_COUNT144set_global_assignment-nameDEVICE_FILTER_SPEED_GRADE8set_global_assignment-nameFITTER_EFFORT"STANDARDFIT"set_global_assignment-nameBDF_FILEtopDesign.bdfset_global_assignment-nameQIP_FILEnios.qipset_global_assignment-nameQIP_FILEaltpll0.qip
set_global_assignment-nameSTRATIX_DEVICE_IO_STANDARD"3.3-VLVTTL"set_global_assignment-namePARTITION_NETLIST_TYPESOURCE-section_idTopset_global_assignment-namePARTITION_COLOR14622752-section_idTopset_location_assignmentPIN_72-toaddr[7]set_location_assignmentPIN_69-toaddr[6]set_location_assignmentPIN_70-toaddr[5]set_location_assignmentPIN_67-toaddr[4]set_location_assignmentPIN_68-toaddr[3]set_location_assignmentPIN_42-toaddr[2]set_location_assignmentPIN_39-toaddr[1]set_location_assignmentPIN_40-toaddr[0]set_location_assignmentPIN_48-todata[15]set_location_assignmentPIN_47-todata[14]set_location_assignmentPIN_50-todata[13]set_location_assignmentPIN_49-todata[12]set_location_assignmentPIN_56-todata[11]set_location_assignmentPIN_55-todata[10]set_location_assignmentPIN_58-todata[9]set_location_assignmentPIN_57-todata[8]set_location_assignmentPIN_61-todata[7]set_location_assignmentPIN_62-todata[6]set_location_assignmentPIN_59-todata[5]set_location_assignmentPIN_60-todata[4]set_location_assignmentPIN_53-todata[3]set_location_assignmentPIN_54-todata[2]set_location_assignmentPIN_51-todata[1]set_location_assignmentPIN_52-todata[0]set_location_assignmentPIN_16-toclkset_location_assignmentPIN_38-tocsset_location_assignmentPIN_141-toled[3]set_location_assignmentPIN_142-toled[2]set_location_assignmentPIN_143-toled[1]set_location_assignmentPIN_144-toled[0]set_location_assignmentPIN_33-toreset_nset_location_assignmentPIN_41-tordset_location_assignmentPIN_71-towrset_location_assignmentPIN_105-tomosiset_location_assignmentPIN_107-tosclkset_location_assignmentPIN_106-tossset_location_assignmentPIN_73-tomotor[0]set_location_assignmentPIN_74-tomotor[1]set_location_assignmentPIN_75-tomotor[2]set_location_assignmentPIN_76-tomotor[3]set_instance_assignment-namePARTITION_HIERARCHYroot_partition-to|-section_idTop#Commitassignmentsexport_assignmentsFPGA点滴(2008-09-3009:44:45)转载标签:杂谈以此记录心得以及重要的知识点。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开发软件会自动计算逻辑电路所有可能的结果,并把结果事先写ARAM.这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。VHDL语言中,由于BIT数据类型只能取值逻辑量‘0’或‘1’,而在实际电路设计和仿真中,还存在象高阻态,不定值等其他状态,故IEEESTD1164标准定义了STD_LOGIC数据类型,包含了9种不同值。实体说明一般由类属参数和端口说明两部分组成,端口说明很熟悉了,说一下类属说明:类属参数说明必须放在端口说明之前,用于设置实体和外部电路之间的静态参数。设计者可以通过改变这些参数来对整个设计实体进行修改。在元件例化中,应用与此相同。rtl视图,其实就是寄存器级传输图,它在综合及布局布线前就生成了,并非设计的最终电路结构,是设计输入的最忠实的体现,它的主要作用是帮助设计者检查设计输入中的问题。跨时钟阈问题的解决:比方说设计输入有2M和3M两个时钟,那么可以采用两种办法,第一个用异步FIFO,第二个是加一个6M的全局时钟,然后让2M和3M做为使能端。每对信号赋值一次,延迟一个时钟,比方说a<=b,c<=a;那么b相对于a延迟一个时钟,a相对于c又延迟一个时钟。对于电平信号输入的,如读写请求信号,那么怎么检测它们的边沿,以达到边沿触发的目的呢。有一个方法,设输入为wrreq,则有Q1<=WRREQ;Q2<=Q1;Wrpulse<=Q2andnot(Q1);此方法即为当wrreq下降沿时,wrpulse为1,后续判断wrpulse即可。Q1<=WRREQ;Q2<=Q1;Wrpulse<=Q1andnot(Q2);此时当wrreq上升沿时,wrpulse为1。在用modelsim进行仿真时,要注意赋初始值,即rst='1'时要都赋值,要不然会出现红线的不定态。用ISE调用modelsim进行仿真相对来讲还是比较方便的,它可以直接建立相应的testbench模块,即verilogtestfixture和vhdltestbench。用ISE10.1和modelsim6.3f配合使用的时候,vhdl语言没有问题;但是用verilog写的模块,调用modelsim的时候会提示一些库的错误,但是这时候直接新打开modelsim,并changedirectory到此目录下,则能正确进行。又重新在ISE下编译了一下verilogHDL的仿真库,问题解决,回忆了一下可能是在我笔记本上当时编译Modelsim仿真库的时候,只编译了VHDL的。10.ISE中直接编译modelsim仿真库:首先在sourceforproject中选中器件,然后在下面process中点开DesignEntryUtilities,然后双击compileHDLSimulationLibraries即可。11.tsu:setuptime,定义输入数据讯号在clockedge多久前就需稳定提供的最大须求;以正缘触发(positiveedgetrigger)的Dflip-flop来举例就是D要比CLK提前tsu时间以前就要准备好,此flip-flop就能于某特定之频率下正常工作.th:holdtime,定义输入数据讯号在clockedge后多久内仍需稳定提供的最大须求;以正缘触发(positiveedgetrigger)的Dflip-flop来举例就是D要在CLK正缘触发th时间内仍要提供稳定之数据,此flip-flop就能于某特定之频率下正常工作.tco:clockoutputdelay,定义由clocklatch/trigger到输出数据有效之最大延迟时间;以正缘触发(positiveedgetrigger)的Dflip-flop来举例就是Q要在CLK正缘触发后至多tco时间就会稳定输出.tpd:propagationdelay,定义由输入脚到输出脚最大延迟时间,一般定义予combinationlogiccircuit较适合.12.ISE中调用一个IP核后,在edit—languagetemplate-coregenerator-选中要例化的核即可例化;还有更简便的方法,在process栏里直接有一个view.....。在安装目录xilinx\10.1\ise\doc\usenglish\books\docs下可以查看FPGA设计的相关文档。象在XST文件夹下就介绍了一些常用模块的编码风格等。xilinx对一个输入管脚,如果添加了IOBUF,那么在这个模块内它就只能被调用一次。去掉BUF是一种解决办法。自顶向下开发,刚开始有一点体会。就是说从顶层开始写,用到的信号先写上,后面再一层一层往下对顶层用到的信号进行定义和相应的赋值。状态机尽量不要用一段式写法,一段是将状态转移、状态输出和转移条件等都写在一个always块或一个process中;两段式是写一个always块描述同步状态转移,一个always块用组合逻辑描述状态转移的条件和相应的输出;三段式相比于两段式是另外再加一个always块专门对各状态的输出做一级寄存同步输出,就是将两段式的状态输出部分摘出来。FPGA设计中没有用到的管脚,要设置输入三态(asinputtri-stated),在想做的转换模块没有用到的CPLD管脚是不是有这个问题引发了一些干扰呢,不过以后还是注意这一点的好。对于扇出的问题一直听说,一直没有搞太明白,今天总算明白了一些。扇出指的是门电路的带负载能力,就是说一个门电路的输出能同时驱动几个门电路,当然它跟门电路的开关特性有关,象CMOS门电路驱动能力就比丁其大。在FPGA设计中,有一个门控时钟的概念,口控时钟指的是不用FPGA内部的全局时钟资源BUFG来控制触发器的时钟沿输入端而是采用组合逻辑和其它时序逻辑(如分频器)产生的信号作为触发器的时钟沿输入端。门控时钟容易带来时钟漂移、毛刺等,使得触发器误动作,通常,对于驱动的触发器数量较少的门控时钟,编译器可以自动将分布时钟缓冲器将其布线优化,但是对于驱动触发器较多的门控时钟,将会使布线不稳定,重者造成设计混乱。门控时中较多,也会使得整个设计的最大工作速度下降,降低产品的性能。对于门控时钟问题,通常的解决办法是将分频器做成与系统时钟宽度一个周期宽度的脉冲信号,所谓系统时钟就是用全局时钟资源BUFG驱动的高扇出、零漂移、零畸变的时钟资源,在FPGA内部的布线结构是树形结构。将分频器的输出送入触发器的ce端,当系统时钟到来时,检测ce信号的有效性,当ce信号有效时,将触发器的输出改变,和分频器的作用完全一样,而且这样处理也使得布线更加优化。对于多扇出问题,通常是指用一个节点驱动多个下级逻辑器件,对于门控时钟驱动较多的触发器,也可以归为此类问题,此问题会严重影响FPGA布线的稳定性,设计的时候要多加注意,此时采用的是复制寄存器策略:CLK为系统时钟,M1为1MHz方波信号,由于M1信号驱动的模块较多,所以M1的扇出较多(假定扇出数为140),为了减少扇出,用系统时钟采样,将M1信号驱动7个D触发器,然后将7个D触发器的输出端分给7个模块,这样每个复制点(DUP0〜DUP6)平均扇出变为20,M1的信号扇出变为7,这样就减少了每个信号的扇出,优化了逻辑,也提高了设计的整体性能。上述模块的VHDL语言描述为:libraryieee;useieee.std_logic_1164.all;entityRegDupisport(clk:instd_logic;Dup:outstd_logic_vector(6downto0);M1:instd_logic);endRegDup;architecturertlofRegDupisbeginprocess(Clk)beginifClk'eventandClk='1'then--系统时钟采样Dup(0)<=M1;――复制M1信号Dup(1)<=M1;Dup(2)<=M1;Dup(3)<=M1;Dup(4)<=M1;Dup(5)<=M1;Dup(6)<=M1;endif;endprocess;endrtl;甲辰说:组合逻辑的敏感信号列表他一般用always@(*),说信号少了不行,多了没事;FPGA的初始状态是在编译以后就赋上的;如果组合逻辑不使用always块,则肯定不会产生锁存器,像使用assign语句,因为它不需要保存上一状态的值。在基于always块的语句中,产生锁存器的情况一般为两种,一种是在if语句中没有else分支,再一个就是case语句没有使用default,如果本意想生成锁存器的话也要显示说明,这样可以提高程序的稳健性和可读性。实现奇数分频可以使用错位异或法,其实就是两路计数,一路计上升沿,一路计下降沿,两路在适当的时候翻转,最后进行或运算即可。在工程目录IP核文件夹下example_design目录下,有相关的使用IP核的例子。在用quartus进行波形仿真的时候,要在vwf文件修改数据的属性,比如进制显示等,这样在simulationreport就不用每次都改了。用ep2c35f484c8做了一个FIFO的仿真,有以下几点:writefull信号:在写到第N+1(fifo深度为N)个数据时,有效,在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备设施包保管理制度
- 设计公司内控管理制度
- 设计单位现场管理制度
- 设计项目人员管理制度
- 诊所医疗器械管理制度
- 诊断试剂风险管理制度
- 试验示范基地管理制度
- 财务资金收支管理制度
- 货仓搬运安全管理制度
- 货物海关代理管理制度
- 南京医科大学自主招生面试试题综合素质答案技巧-南京医学院自主招生题
- 武陟县袁肯纸业有限公司纸箱项目环评报告
- 液氨的管理及应急救援处置
- 大学启示录:如何读大学(上海交通大学)【超星尔雅学习通】章节答案
- 创业法学江西财经大学【超星尔雅学习通】章节答案
- 工程质量验收报告和竣工验收报告
- 2023年黄大仙救世报
- 2022-2023学年内蒙古赤峰市数学高一下期末统考模拟试题含解析
- 江西省建筑工程竣工备案表
- 幼儿园三年发展规划第一年实施绩效自评报告
- (完整版)高考必备3500词
评论
0/150
提交评论