samma6的个人空间 https://blog.eetop.cn/songma1989 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

使用DFII进行数字设计(五)

已有 883 次阅读| 2014-8-9 23:20

在这个很小的设计中,手动操作可以完成以上两步。但是如果设计变成了一个大工程,手动删除操作简直是不能忍受的,也许我需要一个星期不吃不喝一直在做删除操作!在我最无助的时候,IC工程师的好朋友Perl,勇敢的站出来帮了一个他看来再简单不过的忙儿。Perl做了一个简单的动作,帮我完成了一个不可能完成的工作!结果如下:

 

// Library - bcdee_sc, Cell - RS_XOR2_A, View - schematic

// LAST TIME SAVED: Jul  2 09:43:03 2014

// NETLIST TIME: Aug  9 20:10:38 2014

 

 

// Library - bcdee_sc, Cell - RS_INV_A, View - schematic

// LAST TIME SAVED: Jul  2 08:55:40 2014

// NETLIST TIME: Aug  9 20:10:38 2014

 

 

// Library - bcdee_sc, Cell - RS_NR2_A, View - schematic

// LAST TIME SAVED: Jul  2 08:51:46 2014

// NETLIST TIME: Aug  9 20:10:38 2014

 

 

// Library - bcdee_sc, Cell - RS_ND2_A, View - schematic

// LAST TIME SAVED: Jul  2 08:40:16 2014

// NETLIST TIME: Aug  9 20:10:38 2014

 

 

// Library - adder, Cell - fulladder, View - schematic

// LAST TIME SAVED: Aug  9 19:32:32 2014

// NETLIST TIME: Aug  9 20:10:38 2014

 

 

module fulladder ( Cout, Sum, A, B, Cin );

output  Cout, Sum;

 

input  A, B, Cin;

 

 

/* specify

    specparam CDS_LIBNAME  = "adder";

    specparam CDS_CELLNAME = "fulladder";

    specparam CDS_VIEWNAME = "schematic";

endspecify */

 

RS_XOR2_A I6 ( .O(Sum), .I1(net9), .I2(Cin));

RS_XOR2_A I5 ( .O(net9), .I1(A), .I2(B));

RS_INV_A I4 ( .O(net12), .I(net14));

RS_NR2_A I3 ( .O(net14), .I1(A), .I2(B));

RS_ND2_A I2 ( .O(net20), .I1(net12), .I2(Cin));

RS_ND2_A I1 ( .O(Cout), .I1(net23), .I2(net20));

RS_ND2_A I0 ( .O(net23), .I1(A), .I2(B));

 

endmodule

// Library - adder, Cell - twobitadder, View - schematic

// LAST TIME SAVED: Aug  9 20:01:39 2014

// NETLIST TIME: Aug  9 20:10:38 2014

 

 

module twobitadder ( Cout, Sum, A, B, Cin );

 

output  Cout;

 

input  Cin;

 

output [1:0]  Sum;

 

input [1:0]  A;

input [1:0]  B;

 

 

/* specify

    specparam CDS_LIBNAME  = "adder";

    specparam CDS_CELLNAME = "twobitadder";

    specparam CDS_VIEWNAME = "schematic";

endspecify */

 

fulladder I1 ( .Cin(net25), .B(B[1]), .A(A[1]), .Sum(Sum[1]),

     .Cout(Cout));

fulladder I0 ( .Cin(Cin), .B(B[0]), .A(A[0]), .Sum(Sum[0]),

     .Cout(net25));

 

endmodule

 

多余的module和块全部被好朋友Perl干掉了……这回的网表就可以用于数字系统的仿真了,接下来的任务完全可以使用这种方法来做:此处省略1万字!

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 3

    好友
  • 0

    获赞
  • 2

    评论
  • 155

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-5 02:43 , Processed in 0.013003 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部