面试官:如何把大象装进冰箱需要几步

在上一期的Lab3中我们创建了TB所需嘚组件,如Monitor和Checker今天的Lab4的学习目标是:

1.将数据信息封装进入Packet类中

3.创建两个packet对象(object),一个包用来在DUT输入端输入另一个包用来和DUT输出的数據相参照。

在这一次的实验中你将会把数据包的相关信息封装到一个类的结构中去你将会在Generator中产生随机的Packet对象然后发送,接收最后核對DUT使用这些Packet对象使用的正确性。

任务一.:创建一个数据包类(class)文件(用packet类来封装数据包的信息)

 3.通过在类语句(statement)的前面和后面使用宏莋为标记来防止多次编译

(不同的数据包对象将会被gen()程序产生,我们需要区分这些不同的数据包对象因此我们引入string name。)

任务二:萣义数据包的属性约束

1.在属性声明之后添加一个约束模块来限制sa和da在0至15之内,和payload.size()在2至4之内

任务三:定义数据包类方法的雏形

1.在数据包類的体中,添加以下的方法声明:

任务四:定义数据包类new()结构体

new()被用来初始化对象并为它开辟空间对于这个Packet对象来说,大部分性质将会调用randomize()来进行设置但是name这一性质需要在结构体(constructor)中初始化。

1.在Class()体的外部创建new()方法的结构体。确定通过::这一接口可鉯使这个结构体回到开始的那个类中。

这个机制能让这个string到达packet class的所有其他方法中去

为了自我验证,经常会去比较两个数据对象的内容茬数据对象中建立compare方法是一个很好的主意。

  1. 参考上面用::标记的的方式完成compare()方法。

任务六.定义数据包的方法display()

能打印出一个数據包的内容在debug过程中十分有用。为了让这一方式简化一个display的方法应该被定义在这个Packet类中。这样就可以在控制台上打印出Packet对象的内容

2.茬方法内,打印你想输出的内容

这个packet类现在封装了路由器数据包的信息。

你将会产生随机Packet对象接着会在这些随机数据包对象的基础上通过路由器发送和接受数据包。

任务八:修改gen()任务去产生数据包对象

  1. 在gen()任务内删掉所有已存在的代码。

  2. 声明一个静态int变量能够記录Generator产生了多少个数据包

  3. 将pkt2send的name设置为一个唯一的字符串变量。

  4. 随机化数据包对象pkt2send如果随机化失败,打印一条错误信息后停止程序并终圵仿真

  5. 更新所有program全局变量。

这一步让pkt2send对象的内容对所有部件(component)是可见的这些program的全局变量是一个暂时的解决方案。在下一个lab中我们將删除这些变量,并将它们移植到testbench中不同部件的内部

当你完成这些时,你的代码应该如下所示:

任务九:修改recv()任务

 在recv()任务中峩们从路由器输出端取样payload时,需要将它们集合到一个数据包类中(pkt2cmp)这个数据包对象将会被用来检查pkt2send对象。

在调用get_payload任务前要做以下的事凊:
1.创建一个静态int型变量pkt_cnt来记录接收到的数据包的数量

当完成上面的操作后,这个recv()任务应该是像这样的:

任务十:修改check()任务

在check()任务中你将把compare()放入Packet对象中去验证发送和接收到的内容是否正确。为了debug你应该在这个packet对象中使用display()方法。

(你想比较的两个对象昰全局变量pkt2send和pkt2cmp)

2.当探查到错误时,使用display()方法

当完成操作后,这个check()的程序应该如下所示:

任务十一:检查和保存文件

  1. 确保你已經删除掉了test.sv文件中的compare()程序

  2. 保存和关闭test.v文件。

任务十二:编译和仿真(略)

至此Lab4已经完成啦。点击左下角的阅读原文即可查看这佽Lab所用到的全部代码。下周四Lab5的内容是:

4.拓展这个测试平台的Drive和Monitor使其同时连接到所有输入端和输出端。

  •  以上回答都不及格还有若干步驟的:
    1。在打开冰箱之前你总得先买或者制造冰箱吧我家的冰箱是不会给你用的,所以这是一步;
    2把大象放进去之前,你得找到或者苼产‘大象(制品)’吧你可不能错把茶杯当大象放进去,那么这也是一步;
    3既然要把大象放进去,你还得把‘大象’抓起来吧无論如何,‘大象’是不能自己进去的看来这还是一步;
    4。
    “为什么要把大象放进去退一步说,你起码得证明这对大象是无害的吧。”动粅保护主义志愿者站出来抗议了无奈之下,志愿者把自己放进去证明了无害才勉强同意把大象放进去这似乎也是一步。 5“为啥是你來放,不是别人来放”某精细敏感女开始抱怨了。
    “就是既然无害,为啥不是我来放”某好勇斗狠男已经在挽袖子了。 于是乎大家總得讨论一下人选吧而按照国人习俗,不管最后的人选是怎么出来的大家总得先开一系列会来讨论讨论吧。这步好像也少不了 6。最後总算是你出线了但大象不乐意了,它不乐意了你就无法把它放进去的于是你不得不哄哄它。
    比如承诺它可以和女朋友共进烛光晚餐或是像某些行贿者那样请它参加巴厘岛三日游。貌似这步也不可或缺的 7。最后总算大象是同意了你抓起大象正要往冰箱放时,突然伱记起楼主的题目是‘分几步’所以你总得先测量一下你到冰箱的距离,然后按照平常习惯算出有多少步吧
    当然,你也可以问问楼主想要你分成几步这一步能少么?这一步肯定不能少的 (还有若干步骤,请其他网友补充)。
    全部
  • *(2)把大象放进冰箱

原标题:段子手笔下的:“把大潒放进冰箱需要几个步骤”

静静是个很安静的小姑娘,有一天她突发奇想:如果把大象放进冰箱需要几个步骤?

那么问题来了,首先需要把大象切块而冰箱里只有八个格子,静静虽然是个机智的小孩纸但是却十分懒惰,于是他在思考:如何用三刀把大象分成八块

接下来是把大象的各个部分放进冰箱,可是静静太瘦小了,根本搬不动,于是她找来一队搬运工,可是包工头说:我们这好的搬运工都去互联网公司当绝命码奴了,

静静想了想说:那好吧!

盲人1:捡起了大象的尾巴,心想:这活还真好干就搬个草绳而已。

盲人2:搬起了大象的一只腿惢想:这柱子怎么这么沉啊,还真皮包装的!

盲人3:搬起了大象的牙齿心想:擦,原来这活是搬萝卜啊看来可以明目张胆的买兔子了!

盲人4:搬起了大象的耳朵,心想:原来是来搬扇子大夏天的搬这么多扇子,附近肯定有超短裙!

可是由于是盲人们来搬运速度很慢,栤箱的门老是关一下开一下关一下开一下关一下开一下关一下开一下关一下开一下……

冰箱不乐意了心想:等你们把大象都塞进来,我嘚门就更关不上了!

于是他趁静静和盲人们不注意(其实好像不用管盲人)将已经放到自己身体内的大象扔了出去。放一个扔一个放一個扔一个放一个扔一个放一个扔一个……

这个时候蚂蚁路过了,说:

蚂蚁:si不si sa!!用马上分期买啊可以0首付啊!

静静恍然大悟!去买冰箱叻!

蚂蚁看静静走远了,跪在大象身边说:

你个死鬼刚和你结完婚,就不见了!原来在这被人分尸了你怎么走在我前面了呢,这辈子峩他妈不用干别的了就埋你了!

附:在线下消费场景方面,马上金融·商品贷选择了重庆的重百电器、电器商社、新世纪百货作为首秀舞囼目前,这些商场的所有电器都可以分期付款!3·15消费节活动非常火热优惠幅度前所未有,还不快去!

我要回帖

更多关于 把大象装进冰箱需要几步 的文章

 

随机推荐