|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 movit 于 2024-9-19 08:26 编辑
ever like stopped and thought about just how crazy complex these tiny chips and our smartphones are. We're talking billions of transistors, right? All perfectly arranged and connected. It's like, it's mind blowing. It's pretty amazing. And at the core of this whole thing, of this whole technological marvel is this super powerful software called synopsis design compiler. It's basically like the conductor of the chip design orchestra, you know, taking lines of code and turning them into the brains of like everything. It is. 曾经停下来思考过这些微型芯片和我们的智能手机是多么复杂。我们谈论的是数十亿个晶体管,对吗?一切都完美地安排和连接。这就像,令人兴奋。这真是太神奇了。整个事情的核心是,这整个技术奇迹是这个超级强大的软件,称为概要设计编译器。它基本上就像芯片设计乐团的指挥,你知道,将代码行转化为一切事物的大脑。确实如此。 Yeah. It takes those lines of code and transforms them into the silicon that powers, like you said, everything around us. It's wild. So in this deep dive, we're going to try to like unpack design compiler a bit. How it works, why it even matters. And honestly, some of the things that just surprised us reading through the design compiler user guide. Yeah. It's a fascinating journey going through that.是的。它将这些代码行转化为驱动的硅,就像你说的,我们周围的一切。这很狂野。所以在这次深入研究中,我们将尝试稍微喜欢一下解包设计编译器。它是如何运作的,为什么它很重要。老实说,阅读设计编译器用户指南时,有些事情让我们感到惊讶。是的。这是一段令人着迷的旅程。 You see, before design compiler came along, chip design was way more manual. Oh, really? Oh, yeah. So you had to place and connect every single transistor by hand. Oh, my God. That's kind of what it was like. Design compiler brought in automation. It was huge. It let engineers work at a much higher level, you know, focus on what the chip does, not so much the tiny details.你看,在设计编译器出现之前,芯片设计更加手动。哦,真的吗?哦,是的。所以你必须手动放置和连接每个晶体管。哦,天啊。事情就是这样的。设计编译器引入了自动化。它是巨大的。它让工程师在更高的水平上工作,你知道,关注芯片的功能,而不是微小的细节。 So it's like the difference between crafting individual gears by hand and I don't know, designing a whole complex machine using like pre-built parts. Exactly. And one of the things that made this possible, this whole shift, was standardized libraries. Think of them like Lego bricks, but for circuits, you've got adders, multipliers, memory controllers, you name it. Design compiler just grabs these blocks from the library, connects them up based on what the engineer wants. I'm sensing a theme here, modularity, breaking things down into smaller,所以这就像手工制作单个齿轮之间的区别,我不知道,使用类似的预制零件设计整个复杂的机器。确实如此。使这一切成为可能的事情之一,整个转变,是标准化图书馆。把它们想象成乐高积木,但对于电路来说,你有加法器,乘法器、内存控制器,凡是你能想到的。设计编译器只是从库中获取这些块,根据工程师的需求将它们连接起来。我在这里感觉到一个主题,模块化,将事物分解成更小的, more manageable pieces. In fact, the guide even talked about black boxes. And I got to say, that sounds kind of mysterious. What's the deal with those? Black boxes, they're basically placeholders for parts of the design that are, you know, either already figured out or maybe they'll be dealt with later. Okay. Let's say you've got this complex communication module, right? It's already designed, it's been tested, it works.更易于管理的部分。事实上,该指南甚至谈到了黑匣子。我不得不说,这听起来有点神秘。这些是怎么回事?黑匣子,它们基本上是设计部分的占位符,你知道,要么已经弄清楚,要么稍后再处理。好的。假设您有这个复杂的通信模块,对吗?它已经设计好了,已经过测试,可以工作。 You can stick that whole thing in your design as a black box. Just tell it what goes in, what comes out, how it should act overall, but you don't get bogged down in the nitty gritty of how it works inside. Makes sense. Like saying, this part's good to go. Let's focus on how it fits with everything else. Yeah. This whole modular thing, that's got to be super important when you're dealing with like billions of these transistors. Absolutely.您可以将整个事情作为黑匣子粘贴到您的设计中。只要告诉它什么进去,什么出来,它应该如何整体行动,但您不会陷入其内部工作原理的细节之中。有道理。就像说的,这部分很好。让我们关注它如何与其他一切相适应。是的。这整个模块化的东西,当您处理数十亿个晶体管时,这一点非常重要。当然。 And this actually leads us to another important idea, compile strategies. You wouldn't use like a sledgehammer to crack a walnut, right? Right. Design compiler, it's got different approaches for different situations. Oh, interesting. So you're saying there's more than one way to actually compile a chip design. Because reading the user guide, it kind of sounded like the super formal process. It is a formal process, you're right. But there's flexibility within that.这实际上引导我们得出另一个重要的想法,即制定策略。你不会像大锤一样用来敲核桃,对吧?对。设计编译器,针对不同的情况有不同的做法。哦,有趣。所以你是说实际编译芯片设计的方法不止一种。因为阅读了用户指南,这听起来像是超级正式的过程。这是一个正式的过程,你是对的。但这里面有灵活性。 If you're starting a design from scratch or if you're making big changes, you'd probably go for a full compile. It's like hitting the reset button, you're letting design compiler analyze everything, optimize everything from the ground up. And I'm guessing that takes a while. It can, especially with larger, more complex designs. But if you're just tweaking things, you can do an incremental compile. This way, it just focuses on the parts you've changed. Saves a ton of time.如果您从头开始设计或者正在进行重大更改,你可能会进行完整的编译。这就像按下重置按钮,你让设计编译器分析一切,从头开始优化一切。我猜这需要一段时间。它可以,特别是对于更大、更复杂的设计。但是,如果您只是进行一些调整,则可以进行增量编译。这样,它就只关注您已更改的部分。节省大量时间。 Smart. So you're optimizing for efficiency just like design compiler optimizes the chip itself. Exactly. Speaking of optimization, we should talk about how engineers actually tell design compiler what they want. This is where hardware description languages or HDLs come in. Ah, yes, the language of circuits. The guide mentioned that, but something tells me it's not quite like writing poetry. You got that right.聪明。因此,您正在优化效率,就像设计编译器优化芯片本身一样。没错。说到优化,我们应该讨论工程师如何实际告诉设计编译器他们想要什么。这就是硬件描述语言或 HDL 的用武之地。啊,是的,电路语言。指南提到,但有些事告诉我这并不像写诗。你说得对。 HDL, it's a very specific language. Strict rules, precise syntax. It's all about describing how the circuits should behave, but in a way that design compiler understands. So it can translate that into real, physical, logic gates and connections. So less about artistic license, more about being super clear and accurate. No room for misinterpretation when you're talking to a compiler. Exactly. And to make sure everything's crystal clear, there are best practices, coding styles that engineers use.HDL,它是一种非常特殊的语言。严格的规则,精确的语法。这一切都是为了描述电路应该如何表现,但是以设计编译器可以理解的方式。因此它可以将其转化为真实的、物理的逻辑门和连接。与其说是艺术许可,不如说是超级清晰和准确。当您与编译器交谈时,没有任何误解的余地。没错。为了确保一切都清晰可见,有最佳实践,工程师使用的编码风格。 Because design compiler, it's powerful, but it needs those clear instructions to work its magic. It's like that old saying garbage and garbage out. Yeah. If you're not speaking the language properly, you're not going to get the results you want. But even if you've got clean code, you understand HDL. Designing a modern chip still seems unbelievably hard. Where do you even start? It's going to like, I don't know, staring at this blank canvas right here.因为设计编译器,它功能强大,但它需要那些明确的指示才能发挥其魔力。这就像那句老话,垃圾和垃圾出去。是的。如果你说的语言不正确,你不会得到你想要的结果。但即使您有干净的代码,您也了解 HDL。设计现代芯片似乎仍然难以置信地困难。你从哪里开始?我不知道,它会喜欢盯着这块空白的画布。 But you've got like billions of these tiny, tiny brushes. Where do you even begin to paint a masterpiece with that? Well, it's a balance between creativity and being really precise. Engineers, they start by figuring out the big picture, the architecture. What are the main parts of the chip? How are they all going to talk to each other? How fast does it need to be that kind of thing? And then they use HDL to actually describe those parts and how they connect. So it's like urban planning, but for Silicon instead of a city. Exactly.但是你有数十亿个这样的小刷子。你从哪里开始用它来画一幅杰作?嗯,这是创造力和精确性之间的平衡。工程师们,他们首先要弄清楚大局、架构。芯片主要由哪些部分组成?他们如何互相交谈?这种事情需要多快?然后他们使用 HDL 来实际描述这些部件以及它们如何连接。所以这就像城市规划,但针对的是硅而不是城市。没错。 You've got your power grid, your communication lines, got to make sure everything fits in this tiny space. And just like a city planner is thinking about traffic, you got to think about how data moves through the chip. Right. And that's where the actual physical layout, how those components are arranged on the chip, it becomes critical. We're not just talking about connections on paper anymore. We're talking about real physical wires etched into silicon. And that's I'm guessing where things get really, really complicated.你有你的电网,你的通讯线路,必须确保所有东西都适合这个狭小的空间。就像城市规划者考虑交通一样,你必须考虑数据如何在芯片中移动。对。这就是实际的物理布局,这些组件如何在芯片上排列,变得至关重要。我们不再只是谈论纸面上的联系。我们谈论的是蚀刻到硅中的真实物理线。这就是我猜测事情变得非常非常复杂的地方。 But does get complicated, yeah. Because I noticed the guide even mentioned something called, hold on, I wrote it down, top of graphical mode in design compiler. Sounds like we're getting into like the nitty-gritty geography of the chip now. Yeah, you got it. And top of graphical mode, design compiler is taking into account the real world placement of everything on the chip. How long are the wires? Where do they go? All that.但是确实变得复杂了,是的。因为我注意到导游甚至提到了一个叫做“等等”的东西,我把它写下来,在设计编译器的图形模式顶部。 听起来我们现在正在了解芯片的具体地理结构。是的,你明白了。图形模式的顶部,设计编译器正在考虑芯片上所有内容的现实布局。电线有多长?他们去哪儿了?所有这些。 Okay. That's super important because those tiny wires, they actually cause delays. They have electrical effects that can really mess with performance if you're not careful. So it's not just about what's connected, but how it's connected. Kind of like if you've got a tangled up network cable, your internet's slow, even if it's technically plugged in, right? Perfect analogy. And to get that right to actually model those effects, design compiler uses what are called wire load models.好吧。这非常重要,因为那些细小的电线,它们实际上会造成延误。它们具有电气效应,如果您不小心,可能会严重影响性能。因此,这不仅关乎连接的内容,还关乎连接的方式。有点像如果你有一根缠结的网络电缆,即使技术上已插入,您的互联网也很慢,对吧?完美的类比。为了正确地对这些效果进行实际建模,设计编译器使用所谓的线负载模型。 They take into account all sorts of factors. Like what? Like how thick the wire is, how far apart they are, even the stuff around them, all to figure out how much delay each little piece of wire is adding. That is some serious attention to detail. But it makes sense. If you want it to be fast, you got to count for every, what is it, nanosecond of delay? Exactly.他们考虑了各种因素。比如什么?就像电线有多粗,它们相距多远,甚至他们周围的东西,所有这些都是为了弄清楚每小段电线增加了多少延迟。这是对细节的认真关注。但是这是有道理的。如果你想让它快点,你必须计算每一个,它是什么,纳秒延迟?没错。 Remember, we are talking about billions of transistors, miles of these tiny wires, all in something smaller than your finger now. It's mind blowing. Speaking of keeping things in sync on that scale, the guide also mentioned clocks. I'm assuming we're not talking about like grandfather clocks here. No, no grandfather clocks. In a digital circuit, clocks are more like the drummer in a band. They set the tempo, keep everything running in sync. Okay. Design compiler lets engineers define those clock signals.记住,我们谈论的是数十亿个晶体管,这些细小的电线长达数英里,现在全部都在比你的手指还小的东西里。这真是令人兴奋。说到保持如此规模的同步,指南还提到了时钟。我假设我们在这里谈论的不是落地钟。不,没有落地钟。在数字电路中,时钟更像是乐队中的鼓手。他们设定节奏,让一切保持同步。好吧。设计编译器让工程师可以定义这些时钟信号。 How fast they are, things like that, and then analyze how they move through the entire design. That way, all the parts that need to work together, like flip flops, memory, they're all on the same beat. So design compiler is making sure everyone is playing in time. Yeah. But with so much going on, how do engineers even visualize this stuff? It's like you need microscopic vision. You don't need superpowers, although that would be cool. Design compiler can generate these really detailed reports.他们有多快,诸如此类的事情,然后分析它们如何贯穿整个设计。这样,所有需要协同工作的部件,比如人字拖,记忆,它们都在同一个节奏上。所以设计编译器要确保每个人都及时玩。是的。但是发生了这么多事情,工程师如何可视化这些东西呢?这就像你需要微观视觉。你不需要超能力,尽管那很酷。设计编译器可以生成这些非常详细的报告。 You can see the timing, how much space is being used, power consumption, even things like if the wires are getting too crowded. It's just like a checkup for your chip. Yeah, exactly. Engineers can use these reports to see where the bottlenecks are, optimize the critical parts, make sure it's all going to hit those performance targets. And they can even spot potential problems, places where the design's pushing the limits of what can actually be manufactured. Speaking of making sure things work,您可以看到时间、正在使用多少空间、功耗、即使是电线过于拥挤之类的情况。这就像对您的芯片进行检查。是的,完全正确。工程师可以使用这些报告来查看瓶颈在哪里,优化关键部分,确保一切都能达到这些绩效目标。他们甚至可以发现潜在的问题,设计突破了实际制造极限的地方。说到确保一切正常运转, the guide mentioned DFT in the context of design compiler. Is that like design compilers way of saying, don't forget testing. You got it. DFT stands for design for test. It's a crucial part of the whole process that sometimes gets overlooked. Design compiler has features specifically for making the chip testable after it's made. Oh, interesting. Like adding special test circuits, making sure you can actually access the important parts for testing. So you're building in diagnostics from the start.该指南在设计编译器的上下文中提到了DFT。这就像设计编译器的说法一样,不要忘记测试。你明白了。DFT 代表测试设计。这是整个过程的关键部分,但有时会被忽视。设计编译器具有专门用于使芯片在制造后可测试的功能。哦,有趣。比如添加特殊的测试电路,确保您实际上可以访问重要的部分进行测试。所以你从一开始就建立了诊断功能。 Makes sense, especially now that chips are so complex. Yes, absolutely. You can't just test every single function by hand with billions of transistors. DFT lets you automate the testing, which is really the only way to do it when you're making millions of these things. You don't want to wait till it's in someone's self-driving car to find out something's wrong. But with all these advanced features, all this like jargon, getting the hang of design compiler, it's got to be intimidating, right? Where do you even begin? Oh, it's a beast for sure.有道理,尤其是现在芯片如此复杂。是的,绝对如此。你不能仅仅用数十亿个晶体管手动测试每一个功能。DFT 让您可以自动化测试,当你制造数百万件这样的东西时,这确实是唯一的方法。你不想等到它进入某人的自动驾驶汽车后才发现出了问题。但是有了所有这些高级功能,所有这些都像行话一样,掌握设计编译器的窍门,一定很吓人,对吧?你从哪里开始呢?哦,这确实是一头野兽。 But synopsis, they know that. They've got tons of documentation, training courses, a whole community to help people out. There's even a radical interface to make it a little less intimidating. So you don't need to be a command line wizard to use it? That's good to know. You don't need to be, but it helps. But still, even with all the help in the world, I imagine there's got to be challenges, right? What are some of the trickiest parts about using design compiler?但是概要,他们知道这一点。他们有大量的文档、培训课程、整个社区都在帮助人们摆脱困境。甚至还有一个激进的界面,让它不那么令人生畏。那么您不需要成为命令行向导就可以使用它?很高兴知道这一点。你不需要这样做,但这会有所帮助。但是,即使有世界上所有的帮助,我想一定会有挑战,对吗?使用设计编译器最棘手的部分是什么? I think one of the biggest ones is balancing all those different goals. You want it fast, but you also want it small. You want it energy efficient. Those things, they often fight against each other. It's a constant balancing act to find the best compromise. It's like juggling while riding a unicycle on a tightrope. Pretty much. And that's where constraint driven design comes in. Engineers use design compiler to set limits on things, the timing, the area, the power,我认为最大的问题之一是平衡所有这些不同的目标。您希望它快,但您也希望它小。您希望它节能。那些东西,他们经常互相争斗。找到最佳折衷方案需要不断的平衡。这就像在走钢丝时骑着独轮车杂耍。差不多了。这就是约束驱动设计的用武之地。工程师使用设计编译器来设置事物、时间、面积、功率、 and then let the software figure out the best way to make it all work within those limits. So it's about setting realistic goals, but then pushing the limits as far as you can. But with so much to keep track of, what are some common mistakes people make with design compiler? One thing we see a lot is people not following the best practices for writing their HDL code. Remember, as smart as design compiler is, it still needs clear, well written code to work with. Another mistake is setting unrealistic goals, like demanding a sports car that gets 100 miles per gallon.然后让软件找出使其在这些限制内运行的最佳方法。所以这是关于设定现实的目标,然后尽可能地突破极限。但是有这么多东西需要记录,人们在使用设计编译器时常犯的错误有哪些?我们经常看到的一件事是人们没有遵循编写 HDL 代码的最佳实践。请记住,尽管设计编译器很智能,但它仍然需要清晰,编写良好的代码可以使用。另一个错误是设定不切实际的目标,就像要求一辆每加仑可行驶 100 英里的跑车一样。 Sometimes you have to compromise. Gotta be realistic about the trade-offs. Exactly. By experience, really understanding the design process and the technology, that's so crucial in this field. So it's a constant learning process, even for the pros. What about you? What's something about design compiler that still surprises you, even with everything you know? You know, it might sound strange,有时你必须妥协。必须现实地考虑权衡。没错。通过经验,真正理解设计过程和技术,这在这个领域非常重要。因此,即使对于专业人士来说,这也是一个不断学习的过程。【246】你呢?你呢?设计编译器有什么地方仍然让您感到惊讶, 即使你知道一切?你知道,这听起来可能很奇怪, but what gets me is how this software connects the world of ideas, the software itself, to the physical world of silicon. It's like this bridge between the abstract and the real. It really makes you think about like all the hidden complexity in our digital lives, every little thing we do, every click, every swipe, it all comes down to this dance between software and silicon. Hmm. It's true. And it reminds us that even though things seem so virtual these days, we're still bound by the real world, by physics. Those transistors, the wires, they all have to play by the rules.但令我着迷的是这个软件如何连接思想世界,软件本身,到硅的物理世界。这就像抽象与现实之间的这座桥梁。它确实让你思考我们数字生活中所有隐藏的复杂性,我们做的每一件小事,每次点击,每次滑动,这一切都归结于软件和芯片之间的这种舞蹈。 嗯。这是真的。它提醒我们,尽管如今事物看起来如此虚拟,我们仍然受到现实世界、物理的束缚。那些晶体管、电线,它们都必须遵守规则。 And design compiler is there in the thick of it, navigating those rules, pushing those boundaries. And the game keeps changing. New ways to manufacture chips, new materials, new approaches to design, it all means new challenges, and new possibilities for design compiler. And of course, for the engineers using it. It's kind of wild to think, even as we're talking, there are people out there using design compiler to build the chips that will be in the new generation of everything. Ha, smartphones, self-driving cars. I don't know, maybe even things we haven't thought of yet.设计编译器就在其中,导航这些规则,突破这些界限。而且游戏不断变化。制造芯片的新方法、新材料、新设计方法、这对设计编译器来说都意味着新的挑战和新的可能性。当然,对于使用它的工程师来说。即使在我们说话的时候,这样的想法也有点疯狂,有人使用设计编译器来构建新一代芯片。哈,智能手机,自动驾驶汽车。我不知道,甚至可能是我们还没有想到的事情。 Absolutely. Very good. And the design compiler, it's one of the unsung heroes making it all happen. For sure. So next time you're using your phone, whatever, just think about all the work that went into it, all the complexity hidden inside that tiny little chip. Yeah. And the tools, like design compiler, that make it all possible.当然。很好。还有设计编译器,他是让这一切发生的无名英雄之一。当然。所以下次你使用手机时,无论如何,想想所有的工作,所有的复杂性都隐藏在那个微小的芯片中。是的。而设计编译器等工具使这一切成为可能。 Couldn't have said it better myself. It's a testament to, well, to human ingenuity, our ability to work together, and this drive to implement it. And on that note, I think we'll wrap up our deep dive into design compiler. Hopefully we've given you a little glimpse into the magic happening in those chips we all rely on. Hopefully we've sparked some curiosity. Exactly. So until next time, keep exploring, keep asking questions, and keep diving deep into the world of technology.我自己说得再好不过了。这是人类聪明才智的证明,我们共同努力的能力,以及实现这一目标的动力。关于这一点,我想我们将结束对设计编译器的深入研究。希望我们能让您稍微了解我们所依赖的芯片中发生的魔力。希望我们能激起一些好奇心。没错。所以,直到下一次,继续探索,继续提出问题,并不断深入技术世界。
|
|