riple

Stay Hungry, Stay Foolish.

[译完] Rapid System Prototyping with FPGAs - 4.2

0
阅读(2024)

4.2 Common Design Challenges and Mistakes
An FPGA design mistake may be defined as a design that does not achieve the desired ratio of FPGA resource utilization (I/O, logic, memory, hard IP, resource area) and performance (speed/power) implemented within the FPGA device. The number and impact of FPGA design mistakes and oversights may be minimized by developing and consistently following a optimized FPGA design process. The design process should call out design procedures, milestones and design objectives. It should help manage and stabilize the FPGA design cycle. These design challenges most relevant to rapid development that impact the management and development of an FPGA design are listed below.

Common Design Challenges
  • Layout
  • Signal integrity
  • Clocks
  • Pin assignments
  • Margin: resources, clock, logic, memory, processor, performance, schedule, budget
  • Estimation: Resources, schedule, budget, staffing/manpower
  • Future design enhancement/expansion path
  • Architectural implementation
  • Validation verification

At a system engineering level, common mistakes generally occur when adequate design preparation and planning do not occur. The result is an unstable development effort where schedule slips and missed design objectives hamper the success of the project.
The resulting design failures occurring from these common mistakes impact design efforts and add significant risk. Usually, this haste is brought about by an overly aggressive schedule, a result of wishful thinking brought about by pressure to produce a product meeting unrealistic goals. Designers should avoid common mistakes resulting from aggressive schedule pressure. Following are some common design mistakes to watch for and avoid.

Common Design Mistakes
  • Starting an FPGA design in earnest before the requirements are sufficiently defined
  • System requirement changes that are not "rolled down" to the FPGA requirements
  • FPGA requirement updates that are not effectively communicated to the design team
  • Too many FPGA requirement changes
  • Significant FPGA requirement changes too far into the design cycle
  • Allowing too many people to change FPGA design requirements
  • Insufficient review of FPGA design change impacts
  • Poor or inconsistent HDL coding standard application
  • Poor or inconsistent HDL source structure (system architecture)
  • Poor or incorrect commenting of HDL source
  • Inefficient HDL coding style
  • Poor partitioning of design functionality between hardware and software functions
  • Poor partitioning of design functionality between fixed-function and programmable design components
  • Poor planning for design module and IP function block integration
  • Poor planning for design verification (debug & test)
  • Poor selection of design tools
  • Insufficient / Ineffective training of design team staff
  • Poor design documentation
  • Not enough design margin (resources, schedule, budget, personnel)
  • Poor design team staffing
  • Unclear design responsibility assignment
  • Allowing the same individual to implement and test a design module
  • Over-constraining a design
  • Poor or incomplete module-to-module interface within the FPGA device
  • Poor or incomplete FPGA to board-level signal and circuitry interface definition
  • Incomplete analysis or implementation of pre-configuration I/O signal state for FPGA I/O pins
  • Incorrect pin assignments at the FPGA component level
  • Incorrect FPGA device footprint signal, power or ground connectivity within the target board PCB
  • Overly aggressive design schedule
  • Performance requirements too close to the theoretical maximum performance of a family device or technology

4.2常见的设计挑战和错误

FPGA设计错误可以定义为:在特定的FPGA器件内,没能达到资源利用率(I/O资源、逻辑资源、存储资源、硬IP资源、resource area)和性能(速率/功耗)要求的设计。开发并遵循一个优化的FPGA设计流程,就可以最小化FPGA设计中的错误和疏忽的数量及影响。这一流程应该定义明确的设计步骤、设计阶段目标和设计最终目标。它应该使FPGA设计周期得到管理并稳定下来。下面 列出了与快速系统原型设计最相关的,影响FPGA设计的管理和开发过程的设计挑战。

常见的设计挑战:

< >PCB版图设计 PCB信号完整性设计 FPGA外部时钟设计 FPGA引脚分配 设计余量:包 括FPGA逻辑资 源、时钟资源、存储器资源、内嵌处理器资源、性能、开发进度和经费 设计预算:包 括逻辑资源、进度计划、开发经费、开发人员的构成和数量 设计功能的可 增强和可扩展性设计 设计功能的结 构化实现 设计功能的确 认和验证 常见的设计错误:< >在FPGA设计需求未充分明确的情况下,急迫 地开始FPGA设 计 变更后的系统 需求,没能细化为FPGA设计需求 更新后的FPGA设计需求,没能有效地传达给设计团 队 太多的FPGA设计需求变更 在设计过程的 后期提出显著的FPGA设计需求变更 允许太多的人 改变FPGA设计 需求 对FPGA设计需求变更产生的影响缺乏评审 对HDL编码标准的使用欠佳或前后不一致 源代码结构 (系统层次结构)欠佳或前后不一致 对HDL源代码的注释欠佳或不正确 低效率的HDL编码风格 硬件与软件之 间的功能划分欠佳 固定功能元件 与可编程元件之间的功能划分欠佳 IP与系统中其他功能模块的集成计划欠佳 设计验证(调 试和测试)计划欠佳 设计工具选择 不当 对设计团队成 员的培训不充分或效果欠佳 设计文档编制 欠佳 设计余量(包 括器件资源、开发进度、经费预算、人员配备)预留不充分 设计团队成员 构成欠佳 设计责任分配 不明确 让同一个人对 设计模块进行功能实现和功能验证 对设计进行 “过约束” FPGA内部模块之间接口设计欠佳或不完整 FPGA与板级信号或电路的接口定义欠佳或不完整 对FPGA I/O引脚在配置前的信号电平状 态的分析不完善或处理不当 对FPGA I/O引脚位置的分配不正确 在目标板上,FPGA 器件封装的信号、电源、地引脚的 连接有误 开发进度过于 紧张 性能要求太过 于接近某一系列器件或某一器件工艺理论上的最高值

Baidu
map