Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vhdl 如何从综合报告中推断_Vhdl_Xilinx - Fatal编程技术网

Vhdl 如何从综合报告中推断

Vhdl 如何从综合报告中推断,vhdl,xilinx,Vhdl,Xilinx,我使用xilinx用VHDL编写了80c51体系结构。为了增加时钟频率,我将所有80c51指令流水线化。这些指令能够根据需要执行,例如,当处理第一条指令时,会提取第二条指令 然而,尽管从综合报告中创建了3个管道深度,我只得到了略高的时钟频率(大约+/-10Hz)。我发现瓶颈是由合成报告指定的一个操作造成的,但我无法理解合成报告 请问从“SEQ/decode_3到SEQ/I_ram_addr_7”的数据路径是什么? (根据我的猜测,我推断用例when语句用于检查100+相关操作码,但不确定这是否是

我使用xilinx用VHDL编写了80c51体系结构。为了增加时钟频率,我将所有80c51指令流水线化。这些指令能够根据需要执行,例如,当处理第一条指令时,会提取第二条指令

然而,尽管从综合报告中创建了3个管道深度,我只得到了略高的时钟频率(大约+/-10Hz)。我发现瓶颈是由合成报告指定的一个操作造成的,但我无法理解合成报告

请问从“SEQ/decode_3到SEQ/I_ram_addr_7”的数据路径是什么? (根据我的猜测,我推断用例when语句用于检查100+相关操作码,但不确定这是否是瓶颈。但我不知道)

因此,我只有两个问题:

首先,流水线是否可能不会增加时钟频率,而测试台是解释定时减少的唯一方法

其次,我如何推断代码中哪个路径是从“SEQ/decode_3到SEQ/I_ram_addr_7”的瓶颈

谢谢你能帮我解释我的疑问

Timing Summary:
---------------
Speed Grade: -4

   Minimum period: 12.542ns (Maximum Frequency: 79.730MHz)
   Minimum input arrival time before clock: 10.501ns
   Maximum output required time after clock: 5.698ns
   Maximum combinational path delay: No path found

Timing Detail:
--------------
All values displayed in nanoseconds (ns)

=========================================================================
Timing constraint: Default period analysis for Clock 'clk'
  Clock period: 12.542ns (frequency: 79.730MHz)
  Total number of paths / destination ports: 113114 / 2670
-------------------------------------------------------------------------
Delay:               12.542ns (Levels of Logic = 10)
  Source:            SEQ/decode_3 (FF)
  Destination:       SEQ/i_ram_addr_7 (FF)
  Source Clock:      clk rising
  Destination Clock: clk rising

  Data Path: SEQ/decode_3 to SEQ/i_ram_addr_7
                                Gate     Net
    Cell:in->out      fanout   Delay   Delay  Logical Name (Net Name)
    ----------------------------------------  ------------
     FDC:C->Q            102   0.591   1.364  SEQ/decode_3 (SEQ/decode_3)
     LUT4_D:I1->O         10   0.643   0.885  SEQ/de_state_cmp_eq002111 (N314)
     LUT4:I3->O            7   0.648   0.740  SEQ/de_state_cmp_eq00711 (SEQ/de_state_cmp_eq0071)
     LUT4:I2->O            3   0.648   0.534  SEQ/i_ram_addr_mux0000<0>11111 (N2301)
     LUT4:I3->O            1   0.648   0.000  SEQ/i_ram_addr_mux0000<0>11270_SW0_SW0_F (N1284)
     MUXF5:I0->O           1   0.276   0.423  SEQ/i_ram_addr_mux0000<0>11270_SW0_SW0 (N955)
     LUT4_D:I3->O          6   0.648   0.701  SEQ/i_ram_addr_mux0000<0>11270 (SEQ/i_ram_addr_mux0000<0>11270)
     LUT3_L:I2->LO         1   0.648   0.103  SEQ/i_ram_addr_mux0000<7>221_SW2_SW0 (N1208)
     LUT4:I3->O            1   0.648   0.423  SEQ/i_ram_addr_mux0000<7>351_SW1 (N1085)
     LUT4:I3->O            1   0.648   0.423  SEQ/i_ram_addr_mux0000<7>2 (SEQ/i_ram_addr_mux0000<7>2)
     LUT4:I3->O            1   0.648   0.000  SEQ/i_ram_addr_mux0000<7>167 (SEQ/i_ram_addr_mux0000<7>)
     FDE:D                     0.252          SEQ/i_ram_addr_7
    ----------------------------------------
    Total                     12.542ns (6.946ns logic, 5.596ns route)
                                       (55.4% logic, 44.6% route)

=========================================================================
Timing constraint: Default OFFSET IN BEFORE for Clock 'clk'
  Total number of paths / destination ports: 154 / 154
-------------------------------------------------------------------------
Offset:              8.946ns (Levels of Logic = 6)
  Source:            rst (PAD)
  Destination:       SEQ/i_ram_diByte_1 (FF)
  Destination Clock: clk rising

  Data Path: rst to SEQ/i_ram_diByte_1
                                Gate     Net
    Cell:in->out      fanout   Delay   Delay  Logical Name (Net Name)
    ----------------------------------------  ------------
     IBUF:I->O           444   0.849   1.392  rst_IBUF (REG/ext_int/fd_out1_0__or0000)
     BUF:I->O            445   0.648   1.425  rst_IBUF_1 (rst_IBUF_1)
     LUT3:I2->O            4   0.648   0.730  ROM/data<1>1 (i_rom_data<1>)
     LUT4:I0->O            1   0.648   0.500  SEQ/i_ram_diByte_mux0000<1>17_SW0 (N1262)
     LUT4:I1->O            1   0.643   0.563  SEQ/i_ram_diByte_mux0000<1>32 (SEQ/i_ram_diByte_mux0000<1>32)
     LUT4:I0->O            1   0.648   0.000  SEQ/i_ram_diByte_mux0000<1>60 (SEQ/i_ram_diByte_mux0000<1>)
     FDE:D                     0.252          SEQ/i_ram_diByte_1
    ----------------------------------------
    Total                      8.946ns (4.336ns logic, 4.610ns route)
                                       (48.5% logic, 51.5% route)

=========================================================================
定时摘要:
---------------
速度等级:-4
最小周期:12.542ns(最大频率:79.730MHz)
时钟前最小输入到达时间:10.501ns
时钟后所需的最大输出时间:5.698ns
最大组合路径延迟:找不到路径
时间细节:
--------------
以纳秒(ns)为单位显示的所有值
=========================================================================
定时约束:时钟“clk”的默认周期分析
时钟周期:12.542ns(频率:79.730MHz)
路径/目标端口总数:113114/2670
-------------------------------------------------------------------------
延迟:12.542ns(逻辑电平=10)
资料来源:序号/解码单元3(FF)
目的地:SEQ/i_ram_addr_7(FF)
源时钟:时钟上升
目的地时钟:时钟上升
数据路径:SEQ/decode_3至SEQ/i_ram_addr_7
门网
单元:输入->输出扇出延迟逻辑名称(网络名称)
----------------------------------------  ------------
FDC:C->Q 102 0.591 1.364序列/解码3(序列/解码3)
LUT4_D:I1->O 10 0.643 0.885序列/状态cmp_eq002111(N314)
LUT4:I3->O7 0.648 0.740 SEQ/de_state\u cmp\u eq00711(SEQ/de_state\u cmp\u eq0071)
LUT4:I2->O3 0.648 0.534序列/i_ram_addr_mux00001111(N2301)
LUT4:I3->O1 0.648 0.000序列/i_ram_addr_mux000011270_SW0_SW0_F(N1284)
MUXF5:I0->o10.276 0.423序列/i_ram_addr_mux000011270_SW0_SW0(N955)
LUT4_D:I3->O6 0.648 0.701序列/i_ram_addr_mux000011270(序列/i_ram_addr_mux000011270)
LUT3_L:I2->LO 1 0.648 0.103序列/i_ram_addr_mux0000221_SW2_SW0(N1208)
LUT4:I3->O10.648 0.423序列/i_ram_addr_mux0000351_SW1(N1085)
LUT4:I3->O1 0.648 0.423序列/i_ram_addr_mux00002(序列/i_ram_addr_mux00002)
LUT4:I3->O1 0.648 0.000 SEQ/i_ram_addr_mux0000167(SEQ/i_ram_addr_mux0000)
FDE:D 0.252序列/i_ram_addr_7
----------------------------------------
总计12.542ns(6.946ns逻辑,5.596ns路由)
(55.4%的逻辑,44.6%的路线)
=========================================================================
定时约束:时钟“clk”在之前的默认偏移量
路径/目标端口总数:154/154
-------------------------------------------------------------------------
偏移量:8.946ns(逻辑电平=6)
资料来源:rst(PAD)
目的地:SEQ/i_ram_diByte_1(FF)
目的地时钟:时钟上升
数据路径:rst到序列/i_ram_diByte_1
门网
单元:输入->输出扇出延迟逻辑名称(网络名称)
----------------------------------------  ------------
IBUF:I->O 444 0.849 1.392 rst_IBUF(REG/ext_int/fd_out1_0_或0000)
BUF:I->O 445 0.648 1.425 rst_IBUF_1(rst_IBUF_1)
LUT3:I2->O4 0.648 0.730 ROM/data1(i_ROM_数据)
LUT4:I0->O 1 0.648 0.500序列/i_ram_diByte_mux000017_SW0(N1262)
LUT4:I1->O1 0.643 0.563序列/i_ram_diByte_mux000032(序列/i_ram_diByte_mux000032)
LUT4:I0->O1 0.648 0.000序列/i_ram_diByte_mux000060(序列/i_ram_diByte_mux0000)
FDE:D 0.252序列/i_ram_diByte_1
----------------------------------------
总计8.946ns(4.336ns逻辑,4.610ns路由)
(48.5%逻辑,51.5%路由)
=========================================================================

为了让我更具体一点,我将在1操作码的解码阶段给出一个示例代码片段

以下是解码作为mov指令的opdcode时的1种情况。大约有100多个操作码(100多条指令),这意味着这个case语句有100多个when语句

case操作码是

--MOV A,Rn
当“11101000”|“11101001”|“11101010”|“11101011”|“11101100”|“11101101”时| “11101110”|“11101111”=>案例状态为 当E7=>

              de_state <= E8;

          when E8 =>


              de_state <= E9;

          when E9 =>


              de_state <= E10;
          when E10 =>
              --Draw PSW
              i_ram_addr <= xD0;
              i_ram_rdByte <= '1';

              de_state <= E11;
          when E11 =>
              --Draw from Rn
              i_ram_addr <= "000" & i_ram_doByte(4 downto 3)& opcode(2 downto 0);
              i_ram_rdByte <= '1';

              de_state <= E12;

          when E12 =>
              --Place into EDR
              EDR <= i_ram_doByte;
              --close rdByte
              i_ram_rdByte <= '0';

          when others =>

          end case;
de_状态
德鲁州
德鲁州
--抽PSW

既然您正在使用Xilinx,我想您也可以访问PlanAhead?尝试“分析时间/平面布置图设计(规划超前)”(在“实施设计”->“地点和路线”下)

PlanAhead应该打开,并在底部显示计时结果。选择关键路径(一条)
when <some expression involving decode>  =>
   address <= <some address calculation>;
when <some expression involving decode>  =>
   address <= register;
if OPCODE(7 downto 3) = "11101" then ...