구글 안티그래비티 완전 분석 — 모델·요금제·CLI 총정리

🚀 구글 안티그래비티(Antigravity) 완전 분석 구글이 2025년 11월 Gemini 3와 함께 공개한 에이전트 퍼스트(agent-first) IDE 안티그래비티는 Claude·GPT·Gemini를 한 도구에서 골라 쓰는 멀티모델 코딩 환경이다. 이 글에서는 ① 지원 모델과 요금제별 사용량의 실체, ② 실사용자 평가, ③ 구글의 방향성, ④ Claude Code와의 비교·연계, ⑤ CLI( agy )로 직접 쓰는 법까지 다섯 갈래를 차례로 정리한다. 자료 간 충돌이 있는 지점은 한쪽으로 단정하지 않고 양쪽을 모두 살려 표기했다. 📅 기준 시점: 2026년 6월 · 프리뷰 단계 정보로 수치는 변동 가능 1. 안티그래비티란 무엇인가 — 기초 정리 안티그래비티는 2025년 7월 구글이 24억 달러 규모 라이선스 계약 으로 영입한 전 Windsurf 팀이 설계를 주도했다. VSCode를 포크한 위에 자율 에이전트 오케스트레이션 계층을 얹은 구조다. 2026년 5월 Google I/O에서 발표된 안티그래비티 2.0 은 데스크탑 앱과 함께 공식 CLI agy 를 처음 공개하며 기존 Gemini CLI의 공식 후계자 자리를 확정했다. 핵심 정체성은 단순 코드 자동완성이 아니라 병렬 에이전트 오케스트레이션 이다. 여러 에이전트가 동시에 — 하나는 API, 하나는 테스트, 또 하나는 프론트엔드 — 작업을 나눠 진행하고, 각 에이전트는 계획·테스트 결과·스크린샷·영상을 담은 Artifact 를 남긴다. "사람이 한 줄씩 승인"하는 방식이 아니라 "에이전트들이 일을 마치고 사람이 사후 검수"하는 모델이다. flowchart TD A([사용자 작업 지시]) --> B[에이전트 A API 구현] A --> C[에이전트 B 테스트 작성] A --> D[에이전트 C UI 생성] B --> E[Artifact 계획·결과·영상] C --> E D --> E...

Understanding Multi-Cycle Paths in SDC for Digital Design

A multi-cycle path (MCP) is a fundamental concept in digital circuit design, particularly crucial for Static Timing Analysis (STA). It addresses scenarios where data propagation across a logic path inherently requires more than one clock cycle to complete. Understanding MCPs is key to optimizing design performance and avoiding unnecessary complexity.

What is a Multi-Cycle Path?

In standard Static Timing Analysis, the assumption is that data launched from a flip-flop (FF) on one clock edge must be stable and captured by the next FF on the very next active clock edge. This is known as a single-cycle path.

However, certain combinational logic blocks within a design, such as complex arithmetic units or state machines, may naturally require multiple clock cycles to compute and stabilize their outputs. A multi-cycle path is a data path explicitly defined as taking longer than one clock cycle to propagate data from its source register to its destination register.

Why Use Multi-Cycle Paths?

The primary purpose of defining multi-cycle paths is to prevent over-constraining the design. If STA tools treat paths that naturally take multiple cycles as single-cycle paths, it leads to:

  • Aggressive Optimization: The STA tool will try to meet the unrealistic single-cycle timing requirement. This can result in designs with larger area, higher power consumption, and increased complexity, as the tool tries to speed up logic that is fundamentally slow.
  • Increased Design Effort: Designers may spend significant time and resources trying to meet an impossible timing target.

By correctly identifying and constraining multi-cycle paths, designers can:
* Optimize performance: Allow the logic to execute at its natural pace without artificial constraints.
* Improve efficiency: Reduce area and power by avoiding unnecessary optimizations.
* Ensure timing accuracy: Accurately reflect the design's behavior for STA.

Declaring Multi-Cycle Paths with SDC (set_multicycle_path)

In Synopsys Design Constraints (SDC), the set_multicycle_path command is used to inform the STA tool about these longer paths. This command overrides the default single-cycle assumption.

The basic syntax is:

set_multicycle_path <cycles> [-setup] [-hold] -from <start_point> -to <end_point>
  • <cycles>: The number of clock cycles the path is allowed to take.
  • -setup: Specifies that the constraint applies to the setup time check. This is the most common usage.
  • -hold: Specifies that the constraint applies to the hold time check.
  • -from: The source point of the path (e.g., a register output).
  • -to: The destination point of the path (e.g., a register input).

Example:
To specify that a path from reg_a/Q to reg_b/D takes 3 clock cycles for the setup check:

set_multicycle_path 3 -setup -from reg_a/Q -to reg_b/D

Impact on Setup and Hold Checks:

  • Setup Check: When you specify set_multicycle_path 3 -setup, the data launched from reg_a/Q at clock edge 0 is expected to be captured by reg_b/D at clock edge 3 (instead of the default edge 1).
  • Hold Check: By default, if only -setup is specified for a multi-cycle path, the hold check is often adjusted as well. A common default behavior is for the hold check to occur one clock cycle before the new setup check. In the 3-cycle example, the default hold check might be against data launched at cycle 0 and captured at cycle 2.
    However, for many designs, it is critical that the hold time is met at the current capture edge (i.e., the same edge the data is intended to be captured by after the multi-cycle delay). This is achieved by explicitly setting a multi-cycle path for hold:
    sdc set_multicycle_path 3 -setup -from reg_a/Q -to reg_b/D set_multicycle_path 0 -hold -from reg_a/Q -to reg_b/D
    The 0 -hold constraint ensures that the data launched at cycle 0 must still be stable at cycle 0's capture edge (for the destination register), preventing glitches from being captured.

Clock Differences and SDC Declarations

When dealing with multi-cycle paths that span different clock domains or involve clocks with different periods, the interpretation of <cycles> becomes critical.

  • Unequal Clock Periods: If the launch and capture clocks have different periods, simply stating a number of cycles might not accurately reflect the total time. For example, if a path takes 3 cycles of a fast clock and the destination clock is slow, the actual time available might be different.
    • -start and -end Options: To handle this, SDC provides -start and -end options.
      • set_multicycle_path <cycles> -setup -start -from ... -to ...: This constraint is relative to the launch clock edge. The STA tool checks if the data is stable cycles launch clock periods after it was launched.
      • set_multicycle_path <cycles> -setup -end -from ... -to ...: This constraint is relative to the capture clock edge. The STA tool checks if the data arrives cycles capture clock periods before it is captured.
    • Combined Usage: Often, a combination is used:
      sdc # Path takes 2 cycles of clock_fast, and destination is clock_slow # Data launched on clock_fast edge T # Setup check on clock_slow edge T + 2*clock_fast_period set_multicycle_path 2 -setup -from [get_cells reg_a] -to [get_cells reg_b] # If -start or -end is not specified, it is assumed to be relative to the capture clock. # Example using explicit end: set_multicycle_path 2 -setup -end -from [get_cells reg_a] -to [get_cells reg_b] # Example using explicit start (less common for multi-cycle paths involving CDC): # set_multicycle_path 2 -setup -start -from [get_cells reg_a] -to [get_cells reg_b]
      The most common scenario for multi-cycle paths is when the number of clock cycles of the capture clock is specified, ensuring that the data arrives sufficiently in advance of the capture event.

SDC Default Format and Conventions

While SDC doesn't have a single "default format" in the same way a file format might, there are common conventions and best practices:

  • File Extension: SDC files typically have a .sdc extension.
  • Comments: Comments start with #.
  • Scope: Constraints can be applied globally or scoped to specific hierarchies, nets, or pins using options like -object, -hierarchy, or by specifying paths in -from/-to.
  • Clock Definitions: SDC often begins with clock definitions using create_clock and create_generated_clock commands.
  • Timing Exceptions: After clocks are defined, timing exceptions like set_multicycle_path, set_false_path, set_max_delay, and set_min_delay are declared.
  • Input/Output Delays: set_input_delay and set_output_delay are used for I/O ports.
  • Units: Time units are defined using set_units, but they are usually implicit based on the clock period.
  • Hierarchy: Constraints often target specific parts of the design hierarchy, e.g., set_multicycle_path ... -from [get_cells my_module/reg_a] ....

The set_multicycle_path command is a powerful tool for accurately describing the timing behavior of complex logic, enabling STA tools to perform more intelligent and efficient analysis, ultimately leading to a more robust and optimized design.

References

댓글

이 블로그의 인기 게시물

Vim 9.2 릴리즈 총정리: 더 빠르고 강력해진 텍스트 편집의 제왕

폐쇄망 SoC 설계자를 위한 가볍고 빠른 Vim 최적화 가이드

에이전트 시대를 위한 터미널 cmux 가이드: 설치부터 AI 활용까지