每天都有一点新发现:Questa的Verilog仿真

Posted 颜秋哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天都有一点新发现:Questa的Verilog仿真相关的知识,希望对你有一定的参考价值。

       在自己的电脑里安装了Questa Intel Starter和ModelSim Starter版本,因为不熟悉Questa,但是搜索了一下,发现它和ModelSim几乎是完全一样的。准备后续尽可能多的练习Questa的使用。

       在Verilog里很多教材都会提供代码和生成的电路,今早用Questa试了一下生成的电路,电路如下:

        忽然才发现,电路中的信号,是随着仿真变化的,非常直观。我把run的时间步长改成和内部的testbench的步进时间一样,进行仿真的时候,就像看着代码执行一样。嗯,有种当年调试单片机的感觉,每执行一行,看看各个寄存器的变化。

        还可以查看下一层模块,不过不知道是不是我设置的不对,还是操作不对,虽然可以查下一层模块的代码,但是并没有完全不同步的显示激励数据和输出数据的变化。如果单纯的想看逻辑图,没有LogSim直观。

       学习数字电路,买块开发板,写写代码,编译一下,下载烧录,然后就可以看到和仿真一样的效果。而模拟电路,无论仿真多么完美,想看实物效果,必须得画PCB,买各种元件,制作PCBA,测试调试,还得解决各种供电问题,想看实物波形还得配合示波器。相比之下,数字电路的学习成本真的很低,一个开发板的价格,便宜的和万用表差不多,贵的和示波器差不多。数字开发板的供电,可以用电脑的USB口,也可以买个手机充电器解决。而模拟电路的供电,各种开关电源,偶尔还得自己设计一下电源。在家里搞模拟电路的,一定是真爱;在家里搞数字电路的,可能是加班。

成为优秀程序员的101条建议

33. 不断增强你现有的技能

如果你现在掌握一项技能就应该去运用它。除非有意识地进行改进,否则技能会随着时间的推移而逐渐消失,而且这个行业发展非常迅速,持续练习也很重要。要摆脱“我一直都是这样做”的心态,并进入“有更好的方法来做到这一点吗?”的思维方式。

如果你现在有一大包甜甜圈,这并不意味着你每天都可以吃一个??并长期保持这种状态。

34. 了解背后的原理

有时你必须表达自己的意见,因此了解其背后的原理非常重要。为什么解决方案 A 比解决方案 B 更好?提供有效的论据,你的意见将更加健全。

35. 了解你的价值

你是一种商品,应该得到适当的报酬。请注意你所在城市的行业平均值。如果你赚的钱少了,就该和自己的经理聊聊了。拿到你应得的。

36. 不要害怕寻求帮助

如果你遇到问题并且花费了太多时间寻找解决方案,那么这时候就寻求帮助了。我们都是人,都需要帮助。向同事寻求支持并不可耻。

37. 学习怎样学习

人们以不同的方式进行学习。有些人通过视频教程学习效果最好,有些人则通过阅读书籍。弄清楚你的学习风格并努力练习。

38. 保持友善

有时你会被要求提供关于某些同事的反馈,请保持友善。你可以表达自己对黛博拉(演员)缺乏主动性的看法,而不是去把她撕成碎片。

39. 休息一下

连续进行 8 个小时的编码几乎是不可能的。你会很快倦怠并犯下很多错误。所以设置一个计时器,提醒自己停下来休息一下。出去走走。和同事一起喝杯咖啡。离开屏幕将会对你的工作效率和工作质量产生积极的影响。

40. 跟踪你的进度

学习编码需要时间,当你看不到进展时会非常沮丧。所以跟踪你的成就和实现目标的进展非常重要。在计算机旁放一个小清单,每次实现某些功能时,请将其写下来,无论多小。聚沙成塔,集腋成裘。

41. 不要过度依赖框架或库

搞懂语言的细微差别比死抠框架或库的细节更好。你不一定需要逐个学习这些框架或库,但理解它们的工作方式将有助于你编写更清晰、更高效的代码。

42. 学会代码 review

让别人阅读并分析你的代码可能会令人恐惧,但也能够为你提供宝贵的反馈,这将使你成为更好的程序员。你还应该努力进行良好的代码审查。

43. 了解外围的领域

了解外围领域相关的一些基础知识,例如设计、营销、前端或后端开发。它将帮助你成为一个更全面的程序员。

44. 不要选择轻松的技术,要选择正确的

每个项目都有不同的需求,因此我们必须选择合适的工具。虽然选择以前用过的技术很舒服,但如果它们不适合项目的需要,就应该探索替代方案。

45. 为你的错误负责

所有人都会犯错误,在整个职业生涯中你会遇到很多错误。所以当你犯错误时,承担责任是很重要的。它帮你与团队成员和管理层建立信任。

46. 审视自己的代码

在进行 pull 请求之前,请审视你自己的代码。如果这是同事的工作,你会发表什么评论?在请求代码审查之前首先尝试诊断问题或错误是非常重要的。

47. 从失败中学习

失败就是没有达到预期的结果,这并不一定是坏事。在我们的职业生涯中有过很多失败。了解你失败的原因,下次是否可以换一个方法?

48. 认清你的弱点

了解自己。你的弱点是什么?也许你总是忘记在提交之前更新测试;或许你回复的电子邮件真的很糟糕。了解你的弱点,以便自己可以积极地解决这些问题。

49. 保持好奇心

这个行业在不断发展,所以好奇心很重要。如果你不了解某些内容,无论是项目要求还是某一行代码,请说出来。没有人会嘲笑或批评你,你会创建更好的代码。

50. 不要试图学习所有的东西

世界上有无限的知识库,根本无法征服它。选择几个主题来掌握就行了。你可以获得有关其他领域的工作或与自己相关的知识,但无法掌握所有的内容。

51. 不要敝帚自珍

写了一些代码并不意味着你需要对它附加情感。没有人喜欢自己的工作被抛弃,但是代码总有一个生命周期,所以没有必要对它有所捍卫。

52. 召回你的团队

优秀的团队拥有彼此的支持。这创造了一个安全的空间来尝试新事物,而不必为成见担心。

53. 在社区中寻找灵感

找一些你钦佩的行业人士。它将激励你完成自己的项目或尝试新事物。

54. 重视你工作的价值

无论你拥有多少经验或你的职位是什么,你的工作都具有价值。给它应有的价值。


55. 保持专注

关闭微信通知、短信、电子邮件和社交媒体,这将有助于你集中精力并最大化你的工作效率。某人不会因为你需要 30 分钟后再回复他的消息而崩溃。

56. 支持

试着并支持你的团队成员,无论是参加重要演示还是他们遇到困难,去帮助他们吧。

57. 给予必要的信任

如果有人做得很好,请告诉他们。赞同与并帮助是与团队成员建立信任的好方法。这样他们也更有可能会帮助你。

58. 测试你的代码

测试很重要。用单元测试、回归测试、集成测试、端到端测试去测试你的代码,你的产品将更加稳定。

59. 做计划

当你收到新需求或新的bug提示时,请先制定行动计划。你需要什么条件来解决这个问题或开发这个功能?即使只花上几分钟来制定计划,也可以帮你节省好几个小时。

60. 学习使用伪代码

伪编码是一项非常棒的技能,因为它允许你在不浪费时间编写代码的情况下思考复杂问题。在纸上写下一个方法,运行不同的测试用例并查看陷阱的位置。


61. 记录你的成就

如果你在工作中获奖,请将其写下来。如果你开发了一个关键功能,请将其写下来。你积累的这些东西,可以帮你进步,或着在艰难的一天去鼓舞士气。

62. 学习编程的基本功

学习一些基本的排序和搜索算法和数据结构。这些是与语言无关的,可以帮助你解决跨语言的问题。

63. 选择长寿和可维护性的技术

虽然测试最新的技术很有趣,但选择那些在企业级应用中易于维护的技术。你的团队将会在未来几年内感谢你。

64. 学习设计模式

设计模式是构建代码的有力工具。你可能不需要在每个项目都去使用它们,但对它们有基本的了解将有助于构建更大的应用。

65. 不要装B

为了可读性和简单性,不要通过编写复杂的代码来炫耀你的花哨的编程技巧。这将使你的团队成员更容易合作。


以上是关于每天都有一点新发现:Questa的Verilog仿真的主要内容,如果未能解决你的问题,请参考以下文章

关于xcode调试的一点新发现

关于DM8168中移植算法速度慢效率低的新发现

每天进步一点点,希望每天都很充足

成为优秀程序员的101条建议

创意案例|数据可视化装置《关系图》

科学家的新发现,为核反应堆,核材料涂层提供了新方法