多工具环境下的SDC代码管理策略

需积分: 5 0 下载量 76 浏览量 更新于2024-07-14 收藏 576KB PDF 举报
"《在多工具环境中保持SDC代码整洁》(Keeping_your_sdc_code_sane_in_a_multi-tool_environment.pdf)是一篇由Paul Zimmer撰写的论文,针对设计自动化流程中的一个重要挑战——在复杂的时序约束(SDC)管理上。随着电子设计自动化的发展,时序环境变得越来越复杂,包括时钟、自动生成时钟、异常处理等因素,这些都需要在多个层次和不同阶段(如综合、布局和布线以及签收STA)进行处理。这导致编写统一、简洁的SDC脚本变得困难,通常会形成各自独立且碎片化的脚本片段。 论文的核心议题在于提出了一种方法,旨在解决这个难题。作者介绍了一种名为"Herding Cats"的理念,即通过使用可移植过程(Portable Procs)来整合和标准化SDC代码。以下是论文的主要内容概述: 1. 引言:作者首先指出,尽管许多人可能会认为所有关于SDC的工作都只是脚本编写,但实际上这是一个涉及多工具协作和流程整合的复杂问题。作者强调了维护一致性和可管理性的必要性。 2. 可移植过程(Portable Procs): - 使用 Portable Procs 的原因:除了提升代码的复用性,这些过程还能帮助管理层次结构,确保在整个设计流程中,时序约束逻辑在所有工具间的一致性。 - 管理设计层次:通过将相关的时序约束代码封装在可重用的 Portable Procs 中,可以确保即使在设计的不同部分执行顺序不同时,也能保持逻辑的一致性。 - 代码组织:这样做的另一个好处是保持相关代码的紧密关联,即使它们在不同的设计阶段或工具中被调用,也能清晰地看到整体结构。 通过这些技术,作者旨在提供一种解决方案,使设计人员能够在面对多工具环境的挑战时,能够有效地管理他们的SDC代码,实现代码的单一源头管理,从而提高效率并减少错误的可能性。该论文不仅探讨了问题,还提供了实用的实践策略,对于从事硬件设计和验证工作的工程师来说,具有很高的参考价值。"

Before Playstation, there was Pong, at one time the ultimate in video game entertainment. For those of you not familiar with this game please refer to the Wikipedia entry (http://en.wikipedia.org/wiki/Pong) and the many fine websites extolling the game and its virtues. Pong is not so very different in structure from the Billiard ball simulation that you developed earlier in the course. They both involve a ball moving and colliding with obstacles. The difference in this case is that two of the obstacles are under user control. The goal of this project is to develop your own version of Pong in MATLAB using the keyboard as input, for example, one player could move the left paddle up and down using the q and a keys while the right paddle is controlled with the p and l keys. You may check the code for the Lunarlander game which demonstrates some of the techniques you can use to capture user input. You will also probably find the plot, set, line and text commands useful in your program. You have used most of these before in the billiard simulation and you can use Matlabs online help to get more details on the many options these functions offer. Your program should allow you to play a game to 11 keeping track of score appropriately. The general structure of the code is outlined below in pseudo code While not done Update Ball State (position and velocity) taking into account collisions with walls and paddles Check for scoring and handle appropriately Update Display Note that in this case it is implicitly assumed that capturing the user input and moving the paddles is being handled with callback functions which removes that functionality from the main loop. For extra credit you could consider adding extra features like spin or gravity to the ball flight or providing a single player mode where the computer controls one of the paddles.

2023-05-30 上传