阅读(2547) (1)

Verilog 设计方法

2022-05-16 10:48:04 更新

设计方法

Verilog的设计多采用自上而下的设计方法(top-down)。即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块;然后进一步对各个模块进行分解、设计,直到到达无法进一步分解的底层功能块。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更多的人员去设计,从而提高了设计速度,缩短了开发周期。


设计流程


Verilog的设计流程,一般包括以下几个步骤:

需求分析

  • 工作人员需要对用户提出的功能要求进行分析理解,做出电路系统的整体规划,形成详细的技术指标,确定初步方案。例如,要设计一个电子屏,需要考虑供电方式、工作频率、产品体积、成本、功耗等,电路实现采用 ​ASIC ​还是选用 ​FPGA/CPLD​ 器件等。

功能划分

  • 正确地分析了用户的电路需求后,就可以进行逻辑功能的总体设计,设计整个电路的功能、接口和总体结构,考虑功能模块的划分和设计思路,各子模块的接口和时序(包括接口时序和内部信号的时序)等,向项目组成员合理分配子模块设计任务。

文本描述

  • 可以用任意的文本编辑器,也可以用专用的 HDL 编辑环境,对所需求的数字电路进行设计建模,保存为 ​.v​ 文件。

功能仿真(前仿真)

  • 对建模文件进行编译,对模型电路进行功能上的仿真验证,查找设计的错误并修正。
  • 此时的仿真验证并没有考虑到信号的延迟等一些 timing 因素,只是验证逻辑上的正确性。

逻辑综合

  • 综合(synthesize),就是在标准单元库和特定的设计约束的基础上,将设计的高层次描述(Verilog 建模)转换为门级网表的过程。逻辑综合的目的是产生物理电路门级结构,并在逻辑、时序上进行一定程度的优化,寻求逻辑、面积、功耗的平衡,增强电路的可测试性。
  • 但不是所有的 Verilog 语句都是可以综合成逻辑单元的,例如时延语句。

布局布线

  • 根据逻辑综合出的网表与约束文件,利用厂家提供的各种基本标准单元库,对门级电路进行布局布线。至此,已经将 Verilog 设计的数字电路,设计成由标准单元库组成的数字电路。

时序仿真(后仿真)

  • 布局布线后,电路模型中已经包含了时延信息。利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。单元器件的不同、布局布线方案都会给电路的时序造成影响,严重时会出现错误。出错后可能就需要重新修改 ​RTL​(寄存器传输级描述,即 Verilog 初版描述),重复后面的步骤。这样的过程可能反复多次,直至错误完全排除。

FPGA/CPLD 下载或 ASIC 制造工艺生产

  • 完成上面所有步骤后,就可以通过开发工具将设计的数字电路目标文件下载到 ​FPGA/CPLD​ 芯片中,然后在电路板上进行调试、验证。
  • 如果要在 ​ASIC ​上实现,则需要制造芯片。一般芯片制造时,也需要先在 ​FPGA ​板卡上进行逻辑功能的验证。