综合:IO口复用的情况下怎么约束
工作模式A下,此引脚是时钟,
工作模式B下,此引脚是数据
如果按时钟来约束,设置ideal_network来综合,那么当数据口来用时的input delay属性就没法约束?
感觉这种复用不好。
clock最后是需要长clock tree的,clock上的latency会比较大。
所以最好是数据IO复用,clock IO复用。
当然,clock跟data复用也可以。IO进来后,手工插入2个buffer,分成数据和clock两路。再分别约束。
手工改RTL加入两个buffer,但是analyze & elaborate后,这两个buffer被优化了,
加synopsys translate_off也不管用。set_dont_touch要elaborate完才能设。
请教接下来该怎么约束?
手工加buffer不是让你写
assign input_data = in_sig;
assign input_clock = in_sig;
而是直接调用cell library的buffer cell.格式如下:
buf_x2 in_data_buf (.A(in_sig), .O(input_data));
buf_x2 in_clk_buf (.A(in_sig), .O(input_clock));
这样DC绝对不会优化掉
我调用的就是库里的buf0,elaborate完,用get_designs就取不到了
试试Multi Mode...
根据我的经验,手工调用的cell library,在DC elabrate的时候是不会优化掉的。并且抓cell应该用"get_cell"这个命令吧?
实在不行可以随便综合一把,write netlist,在netlist里面找那两个buffer是否还存在。
找到个方法,写个module,这人module里就一个BUF0,再在顶层里例化这个module。这么包一层可以用。谢谢你的帮助
