verilog学习心得

发布时间 : 星期五 文章verilog学习心得更新完毕开始阅读

verilog学习心得

1.数字电路基础知识:布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计

2.数字系统的构成:传感器AD 数字处理器DA 执行部件 3.程序通在硬件上的执行过程:

C语言(经过编译-->该处理器的机器语言(放入存储器-->按时钟的节拍,逐条取出指令、分析指令、执行指令

4.DSP处理是个广泛概念,统指在数字系统中做的变换(DFT、滤波、编码解码、加密解密、压缩解压等处理

5.数字处理器包括两部分:高速数据通道接口逻辑、高速算法电路逻辑 6.当前,IC产业包括IC制造和IC设计两部分,IC设计技术发展速度高于IC设计

7.FPGA设计的前续课程:数值分析、DSP、C语言、算法与数据结构、数字电路、HDL语言计算机微体系结构

8.数字处理器处理性能的提高:软件算法的优化、微体系结构的优化 9.数字系统的实现方式:

编写C程序,然后用编译工具得到通用微处理器的机器指令代码,在通用微处理器上运行(如8051/ARM/PENTUIM

专用DSP硬件处理器

用FPGA硬件逻辑实现算法,但性能不如ASIC

用ASIC实现,经费充足、大批量的情况下使用,因为投片成本高、周期长

10.FPGA设计方法:IP核重用、并行设计、层次化模块化设计、top-down思想 FPGA设计分工:前端逻辑设计、后端电路实现、仿真验证 11.matlab的应用:

matlab中有许多现成的数学函数可以利用,节省了复杂函数的编写时间 matlab可以与C程序接口

做算法仿真和验证时能很快生成有用的数据文件和表格

DSP builder可以直接将simulink模型转换成HDL代码,跳过了中间的C语言改写步骤

12.常规从算法到硬件电路的开发过程: 算法的开发 C语言的功能描述 并行结构的C语言改写 verilog的改写 仿真、验证、修正 综合、布局布线、投入实用

13.C语言改写成verilog代码的困难点:

并行C语言的改写,因为C本身是顺序执行,而不是并行执行 不使用C语言中的复杂数据结构,如指针 目前有将C语言转换成verilog的工具?

14.HDL

HDL描述方法是从电路图描述方法演化来的,相比来说更容易修改 符合IEEE标准的有verilog HDL和VHDL VHDL由美国国防部开发,有1987和1993两个版本 verilog由cadence持有,有1995、2001、2005三个版本

verilog较VHDL更有前景:具有模拟电路描述能力、不仅可以开发电路还可以验证电路、门级以下描述比VHDL强

RTL级和门级的综合已经成熟,主要是注意行为级的综合结果,使用可综合的编程风格

SYSTEM VERILOG是VERILOG的一种延伸 15.IP核的应用:

软核soft core:功能经过验证的、可综合的、实现后门数在5K以上的HDL代码固核firm core:功能经过验证的、可综合的、实现后门数在5K以上的电路结构编码文件,如edif,不可更改

硬核hard core: 功能经过验证的、可综合的、实现后门数在5K以上的电路结构版图,已带工艺参数,不可更改

16.HDL语言综合后得到EDIF,这是一种标准电路网表 EDIF经过具体工艺库匹配、布局布线、延时计算后得到网表 EDIF不可更改,作为固核存在 17.verilog特点:

区分大小写,所有关键字都要求小写

不是强类型语言,不同类型数据之间可以赋值和运算 //是单行注释可以跨行注释

描述风格有系统级描述、行为级描述、RTL级描述、门级描述,其中RTL级和门级别与具体电路结构有关,行为级描述要遵守

可综合原则

门级描述使用门级模型或者用户自定义模型UDP来代替具体基本元件,在IDE中针对不同FPGA器件已经有对应的基本元件

原语

18.verlog语法要点:

module endmodule之间由两部分构成:接口描述和逻辑功能描述 IO端口种类:input output inout

相同位宽的输入输出信号可以一起声明,input[3:0] a,b; 不同位宽的必须分开写内部信号为reg类型,内部信号信号的状态:0 1 x z,3'bx1=3'bxx1 x/z会往左扩展3'b1=3'b001 数字不往左扩展

逻辑功能描述中常用assign描述组合逻辑电路,always既可以描述组合逻辑电路又可以描述时序逻辑电路,还可以用元件调用

方法描述逻辑功能

always之间、assign之间、实例引用之间以及它们之间都是并行执行,always内部是顺序执行

常量格式:<+/-><二进制位宽><'><进制><该进制的数值>:

联系合同范文客服:xxxxx#qq.com(#替换为@)