每天都有一点新发现: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仿真的主要内容,如果未能解决你的问题,请参考以下文章