全局时钟约束实验.doc

上传人:PIYPING 文档编号:11429935 上传时间:2021-08-04 格式:DOC 页数:17 大小:2.06MB
返回 下载 相关 举报
全局时钟约束实验.doc_第1页
第1页 / 共17页
全局时钟约束实验.doc_第2页
第2页 / 共17页
全局时钟约束实验.doc_第3页
第3页 / 共17页
全局时钟约束实验.doc_第4页
第4页 / 共17页
全局时钟约束实验.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《全局时钟约束实验.doc》由会员分享,可在线阅读,更多相关《全局时钟约束实验.doc(17页珍藏版)》请在三一文库上搜索。

1、实验三:全局时间约束实验 全局时间约束实验实验内容 在这个实验中,你将使用全局时钟约束来提高一个已经存在的工程系统的时钟频率。你也可以用Post-Map静态时间报告,Post-Place & Route静态时间报告来分析设计的性能。实验目的完成这个实验后,你将学会:1. 使用Xilinx约束编辑器来输入全局时间约束。2. 回顾Post-Map静态时间报告,修正时间约束是否符合实际3. 使用Post-Place and Route 静态时间报告来绝对对于每一个时间约束的最长的约束路径。参考文件以下文件块对于完成这个实验可以提供参考,可以从Xilinx网站http:/上下载。 PicoBlaze

2、User Guide Spartan-3E Data Sheet Digilent Spartan-3E Board Data Sheet Platform Flash In-System Programmable Configuration PROMs data sheet设计描述在这个实验中,你可以用一些外围设备来完成一个内含的处理机系统。从硬件的角度来看,许多的系统可以提供给你。你可以阅读一些系统的硬件描述,就可以更好的理解了。Figure 3-1. PicoBlaze 系统实验的主要任务是用PicoBlaze写一个软件完成一个循环的测试。一个循环的测试是指,在这个测试中,一个信号发送到

3、一个装置。然后由同一个装置反射回来。信号是否能返回就可以检验出这个装置是否能正常工作。第一个循环测试的启动由LED设定。手制开关,通过眼睛接收信息观察系统是否已经完成了循环。第二次的循环测试是通过RS232串行接口,计算机通过串行口的转换,同时用串行口来接收返回的信号。如Figure 1所示,系统有多个输入。时钟端,复位端,8位的转换输入端和一个串口的接收输入端。来源于目标板上的RS232连接器的串口接收输入端信号在到达FPGA装置前将通过一个高电平的转化器。clk时钟信号 晶振50 MHz rst复位信号rs232_rx串口接收输入端switches7:08-位转换输入端在Figure 1中

4、也显示了所以的输出端。一个8位的LED输出和一个串口转换输出。串口转化输出来源于FPGA,通过一个高电平的转换器到达目标板上的RS232接收器rs232_tx串口转换输出leds7:08位的LED输出你必须通过这些源文件成功地执行这个系统,然后开发一个小的软化代码。软件的开发可以分成三部分。你的最终的软件部分完成需要传送一个很短的复位信号后,同时完成两次循环功能。 Echo switch settings on LEDs Echo serially received data over an RS232 interface当你成功地完成本次实验后,你将学会怎样使用PicoBlaze执行一个内含

5、处理机的系统。时间报告信息对于一个时间报告的解析时间报告的细节将告诉你时间约束失败,路径是否可行。 当你打开一个时间报告时,时间分析器将自动生成时间报告。 时间分析器GUI包括三个窗口(Figure 3-2).你可以使用左边的各级浏览,快速阅读时间报告。Path Detail窗口右下方角落。Path Detail窗口包含了时间报告目前的文本。顶部的窗口显示了时间报告的各个部分。Hierarchical BrowserConstraints ListedData Sheet ReportPath Detail Window Figure 3-2. 时间分析器 GUI详细的路径分析(Figure

6、3-3)包含一些延时路径的信息,包括以下内容:1. Slack约束与实际路径长度的区别(Slack不成立则表明路径不能满足约束)2. 路径的起源和目的地。3. 增加的延时路径的列表(缩写与data sheet上的信息相同)4. 在延迟路径中的每一个网路的Fanout5. 在路径上的总延时。6. 在逻辑和路径中的衰减百分比这将提供一些你的延时路径是否弄错的观点The constraint, number of paths analyzed, andnumber of errorsLongest path(least slack)summary of path delay informationD

7、etailed path descriptionTotal delay (split into logic and routing)过程在这个实验中,你将会创建一个简单的内核系统,输入位置和全局时间约束。这个实验由三个步骤组成:打开工程,输入全局时间约束,最后,完成设计,分析时间。在每一个说明后面将给一个过程,你将找到相应的每步的指导和说明的图表,提供了更详细的执行指示的信息。如果你对某个步骤熟悉了,可以跳过去到下一个步骤。注意:如果你不能完成实验,你可以下载这个模块的实验文件在Xilinx大学网http:/ 步骤1 打开ISE工程,打开time_const工程,连接程序模块,program.

8、psm,生成program.v文件,包含ROM指令。1. 选择Start Programs Xilinx ISE 8.2i Project Navigator2选择File Open Project3浏览路径:VHDL用户:c:xupfpgaflowlabsvhdllab3Verilog用户:c:xupfpgaflowlabsveriloglab34.选择time_const.ise,点击Open,回顾顶层设计。5打开command prompt通过Start Programs Accessories Command Prompt6CD到底层路径的汇编程序,这个程序包含了一个程序模块和一个批处

9、理文件。 cd c:xupfpgaflowlabsverilogllab3assembler (Verilog users) cd c:xupfpgaflowlabsvhdllab3assembler (VHDL users) 7输入以下命令连接程序模块产生程序ROM kcpsm3 program 注意:这个模块在语法上正确但是功能不能实现,你需要重新去完成一个可以实现的有意义的程序代码。 8 在ISE中,增加生成的ROM HDL文件到工程。 9点亮顶层设计文件,执行一个语法的检查,在Synthesis进程下双击Check Syntax 10 切换到仿真模式,使用testbench.v/vhd

10、执行仿真。 在放大后,在以下的图表中你可以看到仿真的结果,接着,你可以输入代码设置LED模仿这种转换。Figure 3-4. Switch settings do not echo back to LEDs输入全局时间约束 步骤2 在这个步骤中,你可以使用手册中的方法通过UCF输入约束。1. 在Processes for Source窗口,选择顶层设计文件loopback.vhd/.v2. 在Processes for Source窗口,展开User Constraints,双击 Edit Constraints (Text) (Figure 3-4) Figure 3-5. Processe

11、s for Source 窗口 工程还没有UCF文件。工程将提供指导自动生成一个。3. 点击Yes 产生一个新的UCF文件,名字为loopback.ucf,将它添加到工程。 参考软件手册,使用推荐的方法输入PERIOD,clk约束时间为20 ns1. 由Start g Programs g Xilinx ISE 8.2i g Documentation g Software Manuals 2. 点击 Constraints Guide3. 在5 Xilinx Constraints区,浏览关于PERIOD约束区,回顾可行的方式指定一个时钟时期约束。 4. 使用推荐的方法TNM_NET和TIM

12、ESPEC PERIOD约束来指定一个周期为20 ns的时钟信号“clk”,看以下的提示,红色方框为约束指定了相应的参数Figure 3-6. TNM_NET constraint with relevant parameters highlightedFigure 3-7. TIMESPEC constraint with relevant parameters highlighted 输入7ns的OFFSET IN时钟约束和一个7.5 ns的OFFSET OUT时钟约束。然后保存这些约束,退出约束编辑器。1. 输入一个7ns的OFFSET IN时钟约束,命名为“clk”Figure 3-8

13、. OFFSET OUT constraint with relevant parameters highlighted2. 输入一个7.5ns的OFFSET IN时钟约束3. 选择File Save输入管脚分配约束 步骤3 许多的FPGA设计在完成之前对管脚的输出有要求,在这个实验中,你可以手动分配位置给输入输出管脚(table 3-1),在这个设计中,通过UCF文件,参考Spartan-3E用户手册。Pin NameDirectionWidthSpartan-3E Board connectionclkInput1 bit50 MHz clock oscillatorrstInput1 b

14、itUse rotary push buttonswitches (connect first 4 to switches; assign LVTTL to last 4 in UCF )Input8 bits4 Slide switches rs232_rxInput1 bitRS-232 serial receiveLEDsOutput8 bits8 LEDsrs232_txOutput1 bitRS-232 serial transmitTable 3-1. 设计 I/O 管脚 2. 打开Spartan-3E Starter Kit 用户指导,为输入输出提供了一些分配位置,如列表3-1.

15、注意:UCF约束在文件中提供。 3. 完成后保存UCF文件执行设计,分析时间 步骤4执行设计。浏览Post-Map Static时间报告和Post-Place & Route Static时间报告。完成Chart 1和Chart 2。1. 在Processes for Source窗口,展开Implement Design进程,展开Map进程!If you do not see the Implement Design process, make sure that loopback.vhd/.v is selected in the Sources in Project window.2.

16、展开Generate Post-Map Static Timing进程。3. 双击Analyze Post-Map Static Timing。执行这些操作完成设计需要通过MAP,产生Post-Map Static时间报告,用时间分析器打开报告,使用报告来确认你的时间约束是否真实,避免浪费Place & Route时间。当填完这些表格后,将PERIOD约束放在CLKFX_BUF (DCM的输出).If the timing report states that no timing constraints were found, the Project Navigator did not rer

17、un the Translate step.! Repeat Step 3, making sure that you right-click Post-Map Static Timing Report and select Rerun All.?1. Complete the row titled Post-Map in the following chart: Chart 1PERIOD constraintOFFSET IN constraintOFFSET OUT constraintConstraintYou must calculate7 ns7.5 nsPost-Map将你的答案

18、与实验答案相比较。4. 退出Timing Analyzer5. 在Processes for Source窗口,展开Place & Route进程,将产生Generate Post-Place & Route Static Timing进程。6. 双击Post-Place & Route Static Timing Report2. ?Complete the row titled Post-P&R in the following chart: Chart 2PERIOD constraintOFFSET IN constraintOFFSET OUT constraintConstrain

19、tYou must calculate7 ns7.5 nsPost-P&R将你的答案与实验答案相比较。创建软件,执行HDL仿真 步骤5你需要开发PicoBlaze汇编程序来满足三条软件要求,为了使用方便,程序包括了一系列的常数的定义。程序的结构化可以使你能够独立地完成每一个的三个要求。每个要求作为一个任务列出,任务一最简单,任务三最难。在你完成一个给定地任务写完一个代码时,你必须重新运行汇编程序,完成程序的汇编。;=; Actual assembly program goes here.;=cold_start: LOAD s0, all_clear ; zero out reg s0 ; L

20、AB TASK #2 ; Write code to output a short (10 characters ; or less) message to the serial port.loop: LOAD s0, all_clear ; zero out reg s0 (nop) ; LAB TASK #1 ; Write code to read the switch state and ; then write it to the LED control port.rs232_echo: LOAD s0, all_clear ; zero out reg s0 (nop) ; LAB

21、 TASK #3 ; Write code to check if a byte has been ; received by the uart. If so, write it ; back to the uart transmit port. If not ; dont do anything and just. JUMP loop ; loop again;=;=为Task #1生成一个必要的代码执行一个loop back测试,汇编,ROM文件一旦生成,你需要增加一个testbench给设计,执行一个仿真动作测试转换和LED.1. 为task #1写代码,在Assembler的下层路径中

22、编辑program.psm,阅读转换状态,将其写入LED控制端口。注意:端口值参考汇编模块的常数和PicoBlaze文件。隐藏:你只需要写下两行代码(参考KCPSM3用户手册)2. 代码写完后,重新汇编程序。3. 转换到Behavioral Simulation模式4. 将停止时间设置为50000 ns,开始仿真。 5. 分析输出波形,进行控制台仿真,完成后关闭窗口。Figure 3-11. Switch settings echo back to LEDs注意:一个二进制值10101010将应用于输入和输出端口PicoBlaze的转换,LED输出端口于3-9所示。Figure 3-12. V

23、iew messages in the Simulation Console产生Flash PROM文件平台 步骤6 Xilinx flash PROMs平台为保存Xilinx FPGA配置流提供了可重新编程的方法。Digilent Spartan-3E目标板含有一个 4 Mbit xcf04s platform flash PROM ,它可以存储xc3s500e位流,需要2,270,208配置位,在这个步骤中,你将可以使用iMPACT产生一个Intel正式MCS文件来给PROM编程。1. 双击Generate Programming File,在ISE软件中重新产生位流。2. 展开Gener

24、ate Programming File进程,双击Generate PROM, ACE, 或者 JTAG选项。3. 选择Prepare a PROM file,点击next继续。4. 保留默认值(figure 3-11),选择Xilinx PROM 和 MCS,选项提供了一个PROM文件名,点击next继续。Figure 3-13. Preparing the PROM files5. 在下拉列表中选择xcf04s Flash PROM平台,点击Add按钮,点击next继续。 Figure 3-14. Specify the xcf04s PROM for the Digilent Spart

25、an-3E board6. 点击 和,然后增加loopback.位,当对话框打开,你不需要增加另外一个装置,点击。7.双击Generate File,产生MCS文件。你将看见以下信息显示“PROM File generation succeeded”。Figure 3-16. Generate MCS File配置PROM PROM 和Run the Loop Back 测试 步骤7在这个步骤中,你将要转换一个配置模式,在最后一步中使用MCS生成文件配置一个platform flash PROM ,然后由PROM 和测试 the loopback配置一个 FPGA ,应用于目标板上。1. 给S

26、partan-3E目标板供电。2. 在Flows页面双击Boundary-ScanFigure 3-17. Selecting Boundary Scan in iMPACT3. 点击空白部分,选择Initialize列。4. 当要求给xc3s500e指定一个配置文件时点击。5. 为xcf04s平台Flash装置增加文件.mcs,然后 the CPLD.6. 在iMPACT窗口点击xcf04s,选择Program.7. 如果Programming Properties对话框打开了,点击注意:如果程序没有实现,取消选定Erase Before Programming选项,重调程序。8. 确认配置

27、模式已经设置,位流才能从flash平台使能(可以查阅 Digilent Spartan-3E 用户指导)。重新启动 Digilent 目标板,通过flash PROM 平台重新配置Spartan-3E,按转换开关使LED灯亮灭。 结论 在这个实验中,你已使用Xilinx约束编辑器输入全局时间约束。你也可以重新查看Post-Map 和 Post-Place & Route 时间报告。时间约束是一种将性能展望与执行工具最好的交流方式。当执行工具第一次放置安排你的设计的时候,你必须确认你的时间约束是否真实可靠。你可以由Post-Map静态时间报告估计时间性能。在执行动作完成后,时间约束必须与Post

28、-Place & Route静态时间报告或者由时间分析器产生的客户时间报告进行确认。A答案:列出的实验答案只是代表一些简单的结论。你的结果可能不同,取决于你的软件的版本,服务包,和你使用的操作系统。1. 在以下的图表中,完成标题为Post-Map的那行。 Chart 1PERIOD constraintOFFSET IN constraintOFFSET OUT constraintConstraint18.18 ns7 ns7.5 nsPost-Map 8 ns7 ns 4 ns 2. 在以下的图表中,完成标题为Post-P&R的那行。 Chart 2PERIOD constraintOFFSET IN constraintOFFSET OUT constraintConstraint18.18 ns7 ns7.5 nsPost-P&R 13 ns7 ns4 ns

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1