首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

什么时候应该用Core generator ?

什么时候应该用Core generator ?

想实现一个简单的相等比较器。

功能:if a=b then c=1 else c=0;

方法

1。自己用vhdl编写

2。用core generator生成

生成之后,直接用XST综合工具综合了一下,没有任何引脚之类的限制,产生如下两个结果。

1。--------------------------vhdl生成

Delay:               6.779ns (Levels of Logic = 10)
  Source:            Uppins<0> (PAD)
  Destination:       Outpins (PAD)

  Data Path: Uppins<0> to Outpins
                                Gate     Net
    Cell:in->out      fanout   Delay   Delay  Logical Name (Net Name)
    ----------------------------------------  ------------
     IBUF:I->O             1   0.653   0.608  Uppins_0_IBUF (Uppins_0_IBUF)
     LUT4:I0->O            1   0.347   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_lut<0> (N4)
     MUXCY:S->O            1   0.235   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<0> (XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<0>)
     MUXCY:CI->O           1   0.042   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<1> (XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<1>)
     MUXCY:CI->O           1   0.042   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<2> (XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<2>)
     MUXCY:CI->O           1   0.042   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<3> (XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<3>)
     MUXCY:CI->O           1   0.042   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<4> (XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<4>)
     MUXCY:CI->O           1   0.042   0.000  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<5> (XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<5>)
     MUXCY:CI->O           1   0.601   0.383  XLXI_1/Mcompar_Outpins_cmp_eq0000_cy<6> (Outpins_OBUF)
     OBUF:I->O                 3.743          Outpins_OBUF (Outpins)
    ----------------------------------------
    Total                      6.779ns (5.789ns logic, 0.990ns route)
                                       (85.4% logic, 14.6% route)

2。--------------------------core generator生成

All values displayed in nanoseconds (ns)

=========================================================================
Timing constraint: Default path analysis
  Total number of paths / destination ports: 28 / 1
-------------------------------------------------------------------------
Delay:               7.523ns (Levels of Logic = 8)
  Source:            Uppins<9> (PAD)
  Destination:       Outpins (PAD)

  Data Path: Uppins<9> to Outpins
                                Gate     Net
    Cell:in->out      fanout   Delay   Delay  Logical Name (Net Name)
    ----------------------------------------  ------------
     IBUF:I->O             1   0.653   0.608  Uppins_9_IBUF (Uppins_9_IBUF)
     begin scope: 'XLXI_1'
     begin scope: 'BU2'
     LUT4:I0->O            1   0.347   0.608  U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/lut_o_1_and000080 (U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/lut_o_1_and0000_map32)
     LUT3:I0->O            1   0.347   0.000  U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/lut_o_1_and0000100 (U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/lut_o<1>)
     MUXCY:S->O            1   0.235   0.000  U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/opt_carry_tile.and_or.carry_muxs[1].i_mux (U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/async_o<1>)
     MUXCY:CI->O           1   0.601   0.383  U0/gen_structure_logic.gen_nonpipelined.a_equal_notequal_b.i_a_eq_ne_b/i_use_carry_plus_luts.lut_and.i_gate_bit/tier_gen[1].i_tier/loop_tiles[0].i_tile/opt_carry_tile.and_or.carry_muxs[0].i_mux (a_eq_b)
     end scope: 'BU2'
     end scope: 'XLXI_1'
     OBUF:I->O                 3.743          Outpins_OBUF (Outpins)
    ----------------------------------------
    Total                      7.523ns (5.926ns logic, 1.598ns route)
                                       (78.8% logic, 21.2% route)

问题:

1。如果说延迟越短越好的话,为什么core generator不如自己编写的vhdl生成的好?是不是还有其他的性能评价参数?

     比如说那个levels of logic 是越小越好吗?

2。都说core generator是针对xilinx进行优化的,能用最好就用,是这样吗?与上面的结果矛盾呀。

3。vhdl实现比较器就用到了

   if a=b then c<='1' else c<='0'; 这一条语句,还有更节省资源,时延短的吗?

4。另外,在用原理图编辑的时候,类似“比较器”这样的器件也可以直接找到,添加就可以,这种和core generator或者自己用vhdl生成的相比较,哪个好点?

请不吝赐教,多谢了。

[此贴子已经被作者于2007-4-10 22:07:26编辑过]

[em11]
谢谢斑竹。
返回列表