- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 VHDL 在 Xilinx 中设计了一个 MIPS 单周期处理器。抽象设计是基于Patterson和Henessy的书提供的理论。完成设计后,我运行了一些汇编代码来检查它的功能并给出了预期的结果。我的问题是设计总结报告(“.SYR”文件)中的“TIMING SUMMARY”。每次我更改存储在指令存储器(这是我的 ROM)中的汇编代码时,单周期处理器的最小时钟周期都会不断变化。不太明白是什么原因?
Timing Summary:---------------Speed Grade: -4 Minimum period: 17.561ns (Maximum Frequency: 56.945MHz) Minimum input arrival time before clock: No path found Maximum output required time after clock: 16.296ns Maximum combinational path delay: No path foundTiming Detail:--------------All values displayed in nanoseconds (ns)=========================================================================Timing constraint: Default period analysis for Clock 'clk' Clock period: 17.561ns (frequency: 56.945MHz) Total number of paths / destination ports: 6965792 / 616-------------------------------------------------------------------------Delay: 17.561ns (Levels of Logic = 22) Source: MIPS_processor_unit/Datapath_comp/PC_reg/q_5_1 (FF) Destination: MIPS_processor_unit/Datapath_comp/RegF/memory_0_0 (FF) Source Clock: clk rising Destination Clock: clk rising Data Path: MIPS_processor_unit/Datapath_comp/PC_reg/q_5_1 to MIPS_processor_unit/Datapath_comp/RegF/memory_0_0 Gate Net Cell:in->out fanout Delay Delay Logical Name (Net Name) ---------------------------------------- ------------ FDCE:C->Q 2 0.591 0.622 MIPS_processor_unit/Datapath_comp/PC_reg/q_5_1 >>(MIPS_processor_unit/Datapath_comp/PC_reg/q_5_1) LUT2_L:I0->LO 1 0.704 0.104 Instruction_memory_unit/Mrom_Instruction_out391220_SW0 (N1361) LUT4:I3->O 3 0.704 0.535 Instruction_memory_unit/Mrom_Instruction_out391236_SW0 (N141) LUT4:I3->O 17 0.704 1.051 Instruction_memory_unit/Mrom_Instruction_out391236 (Instruction_tl_s) MUXF5:S->O 2 0.739 0.526 MIPS_processor_unit/Datapath_comp/RegF/mux8_8_f5 (MIPS_processor_unit/Datapath_comp/RegF/mux8_8_f5) LUT4:I1->O 1 0.704 0.000 MIPS_processor_unit/Datapath_comp/ALUSrc_mux/y1_F (N276) MUXF5:I0->O 3 0.321 0.610 MIPS_processor_unit/Datapath_comp/ALUSrc_mux/y1 (MIPS_processor_unit/Datapath_comp/ALU_2nd_input_s) LUT2:I1->O 1 0.704 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_lut (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_lut) MUXCY:S->O 1 0.464 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) MUXCY:CI->O 0 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_cy) XORCY:CI->O 1 0.804 0.424 MIPS_processor_unit/Datapath_comp/ALU_comp/Msub_y_sig_addsub0001_xor (MIPS_processor_unit/Datapath_comp/ALU_comp/y_sig_addsub0001) LUT4:I3->O 1 0.704 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/y_sig_mux0000_f5_G (N237) MUXF5:I1->O 259 0.321 1.334 MIPS_processor_unit/Datapath_comp/ALU_comp/y_sig_mux0000_f5 (Output_address_0_OBUF) RAM32X1S:A0->O 1 1.025 0.499 Data_memory_unit/Mram_data_mem1 (N10) LUT3:I1->O 1 0.704 0.000 inst_LPM_MUX_6 (inst_LPM_MUX_6) MUXF5:I0->O 1 0.321 0.000 inst_LPM_MUX_4_f5 (inst_LPM_MUX_4_f5) MUXF6:I0->O 1 0.521 0.455 inst_LPM_MUX_2_f6 (Read_data_tl_s) LUT3:I2->O 8 0.704 0.000 MIPS_processor_unit/Datapath_comp/WB_mux/y1 (MIPS_processor_unit/Datapath_comp/write_data_s) FDCE:D 0.308 MIPS_processor_unit/Datapath_comp/RegF/memory_0_0 ---------------------------------------- Total 17.561ns (11.401ns logic, 6.160ns route) (64.9% logic, 35.1% route)=========================================================================
Timing Summary:---------------Speed Grade: -4 Minimum period: 13.551ns (Maximum Frequency: 73.798MHz) Minimum input arrival time before clock: No path found Maximum output required time after clock: 14.466ns Maximum combinational path delay: No path foundTiming Detail:--------------All values displayed in nanoseconds (ns)=========================================================================Timing constraint: Default period analysis for Clock 'clk' Clock period: 13.551ns (frequency: 73.798MHz) Total number of paths / destination ports: 256927 / 278-------------------------------------------------------------------------Delay: 13.551ns (Levels of Logic = 13) Source: MIPS_processor_unit/Datapath_comp/PC_reg/q_6 (FF) Destination: MIPS_processor_unit/Datapath_comp/PC_reg/q_2 (FF) Source Clock: clk rising Destination Clock: clk rising Data Path: MIPS_processor_unit/Datapath_comp/PC_reg/q_6 to MIPS_processor_unit/Datapath_comp/PC_reg/q_2 Gate Net Cell:in->out fanout Delay Delay Logical Name (Net Name) ---------------------------------------- ------------ FDCE:C->Q 71 0.591 1.354 MIPS_processor_unit/Datapath_comp/PC_reg/q_6 (MIPS_processor_unit/Datapath_comp/PC_reg/q_6) LUT3_D:I1->O 8 0.704 0.761 Instruction_memory_unit/Mrom_Instruction_out4711110 (N91) LUT4:I3->O 17 0.704 1.051 Instruction_memory_unit/Mrom_Instruction_out43111_2 (Instruction_memory_unit/Mrom_Instruction_out43111_1) MUXF5:S->O 1 0.739 0.000 MIPS_processor_unit/Datapath_comp/RegF/mux3_7_f5_0 (MIPS_processor_unit/Datapath_comp/RegF/mux3_7_f51) MUXF6:I0->O 1 0.521 0.424 MIPS_processor_unit/Datapath_comp/RegF/mux3_5_f6_0 (MIPS_processor_unit/Datapath_comp/RegF/mux3_5_f61) LUT4:I3->O 1 0.704 0.424 MIPS_processor_unit/Datapath_comp/RegF/read_data_11 (MIPS_processor_unit/Datapath_comp/read_data_1_s) LUT4:I3->O 1 0.704 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_lut (MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_lut) MUXCY:S->O 1 0.464 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy) MUXCY:CI->O 1 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy) MUXCY:CI->O 0 0.059 0.000 MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy (MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_cy) XORCY:CI->O 18 0.804 1.072 MIPS_processor_unit/Datapath_comp/ALU_comp/Maddsub_y_sig_addsub0000_xor (MIPS_processor_unit/Datapath_comp/write_data_s) LUT4_D:I3->O 5 0.704 0.637 MIPS_processor_unit/Controller_comp/PCSrc9 (MIPS_processor_unit/Controller_comp/PCSrc9) LUT4:I3->O 1 0.704 0.000 MIPS_processor_unit/Datapath_comp/Jump_mux/y1 (MIPS_processor_unit/Datapath_comp/Next_PC_1_s) FDCE:D 0.308 MIPS_processor_unit/Datapath_comp/PC_reg/q_6 ---------------------------------------- Total 13.551ns (7.828ns logic, 5.723ns route) (57.8% logic, 42.2% route)=========================================================================
可以看出,我给了我的 Instruction_memory_unit 两个不同的汇编代码和单周期处理器更改的最短周期。这些是我的疑问:
1) 每次我更改汇编代码时,xilinx 是否会根据我在汇编代码中指定的指令评估关键路径?如果"is",那么我应该如何获得设计的一般最短期限?
2) 我有 RegF 作为我的寄存器文件,它基本上是包含 MIPS 处理器的 32 个寄存器的 RAM。我无法理解的是,在这两个时序摘要中,“门延迟 + 网络延迟”是不同的。理论上,作为内存的寄存器文件不应该有固定的读取时间吗?
最佳答案
它可能会将您的 ROM 合成为门或 LUT 或 SRL16。 ...检查设备使用情况(就在 .syr 文件中的计时报告之前)以查看它是否正在为 ROM 使用 block 内存 - 它可能不是。
事实上,根据时序报告,这似乎确实是问题所在:那里有很多 LUT,但没有 BRAM 的迹象。
如果这是问题所在,请在 Xilinx 约束指南中查找“attribute ram_style=blockram”(我的拼写/语法可能略有错误)- 如果将其应用于包含 ROM 的阵列,您也许能够克服这个问题.一旦数据在内存中,时序应该更加稳定。
请注意,BlockRams 是同步的:您在一个时钟周期内提供地址,并在一个周期后获取内容。如果这不符合您的流水线模型,您将不得不重新考虑,以便让综合在 block 内存中实现 ROM。
关于mips - Xilinx 设计的最小时钟周期随着输入的变化而不断变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590168/
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我正在尝试将 JSON 发送到我的服务器并作为结果检索 JSON。例如发送用户名和密码并取回 token 和其他内容。 这就是我正在为发送的 HTTP 请求所做的。我现在如何检索同一请求中的内容?
我有以下 xts 矩阵: > options(digits.secs = 6) > set.seed(1234) > xts(1:10, as.POSIXlt(1366039619, tz="EST"
我目前正在开发一个应用程序,当用户到达某个位置时,它会提醒用户。我希望这个应用程序也在后台运行并搜索解决方案。 在 AppStore 中,我发现了一款名为“Sleep Cycle”的应用程序,它可
我想创建一个基于 farbtastic color picker 的颜色选择器。我想要实现的是添加我想要链接到色轮的 RGB slider 。这是我到目前为止所拥有的。 app.controller(
RFC 5545 允许 RDATE 属性具有 PERIOD 数据类型。该数据类型的语义是什么?据我所知,这是未指定的。它会改变事件的持续时间吗?如果时区更改且没有持续时间怎么办? 最佳答案 尽管我
在 CodinGame学习平台,C# 教程中用作示例的问题之一是: The aim of this exercise is to check the presence of a number in a
我听说网上有一本英特尔书,它描述了特定汇编指令所需的 CPU 周期,但我找不到(经过努力)。谁能告诉我如何找到CPU周期? 这是一个例子,在下面的代码中,mov/lock 是 1 个 CPU 周期,x
据我所知,Java GC有次要GC(低成本)和主要GC周期(高成本)。如果对象在本地范围内,则会在 Minor GC 中清理它。如果对象的引用存储在代码中的其他位置,则它会在主 GC 中被清除。 例如
到目前为止,我有一个很好的自旋锁,可以用作 intendend: std::atomic_flag barrier = ATOMIC_FLAG_INIT; inline void lo
晚上好,我将 cycle2 与 prev 和 next 函数一起使用,但我无法将 prev 和 next 函数置于图像下方的中心。我环顾四周,我知道这会很愚蠢,但我就是看不到它。非常令人沮丧。谢谢加里
出于教育目的,我想知道在优化(在不同级别)和编译之后执行函数需要多少 CPU 周期。有没有办法分析代码或可执行文件以获得可重现的答案?我在 64 位 Windows 7 Pro 上使用 Eclipse
我想彻底测量和调整我的 C/C++ 代码,以便在 x86_64 系统上更好地使用缓存。我知道如何使用计数器(我的 Windows 机器上的 QueryPerformanceCounter)来测量时间,
我尝试将一些数据分组到每四周一次的存储桶中,并使用 pd.Grouper(key='created_at', freq='4W')。我希望这些组是这样的,如果我有从 2019-08-26 到 2019
我正在做一个关于随机数的大型学校项目,但我找不到 Math.random() 的句点。我安装了 7.0.800.15 版本,并且正在使用 Windows 10 计算机。我试过用一个简单的程序来确定周期
我正在努力解决我们生产环境中垃圾收集利用率高的问题,我想知道设置一个大的堆大小来保证老年代永远不会被填满是否会阻止触发主要的 GC 周期。 为了实现这一点,我想有一个特定的阈值标记会触发主要的 GC
我想测量在 Python 3 中执行加法运算所需的时钟周期数。 我写了一个程序来计算加法运算的平均值: from timeit import timeit def test(n): for i
我正在寻找一种方法来测量线程上的函数调用所花费的 cpu 周期。 示例伪代码: void HostFunction() { var startTick = CurrentThread.Cur
就 CPU 周期而言,malloc() 的成本是多少?(Vista/OS,最新版本的 gcc,最高优化级别,...) 基本上,我正在实现一个复杂的 DAG 结构(类似于链表)由一些 16B(不太常见)
C/C++ 中的类型转换会导致额外的 CPU 周期吗? 我的理解是,至少在某些情况下应该消耗额外的 CPU 周期。就像从浮点类型转换为整数一样,CPU 需要将浮点结构转换为整数。 float a=2.
我是一名优秀的程序员,十分优秀!