1.概述
能够进行不同级别的描述:
开关级->门级->RTL级->算法级-系统级
常用的设计层次:RTL级、
设计流程:
1,电路设计:方案论证,系统划分,芯片选择
2,设计输入:原理图 或 HDL
3,功能仿真:没有延迟信息,生成报告文件和输出信号波形
4,综合优化:将设计输入编译成基本逻辑单元组成的门级结构网表
5,综合后仿真:利用生成的标准延时文件仿真,但不能估计线延时
6,实现:将逻辑网表配置到FPGA上
7,布线后仿真:将布局布线的延时信息反标注到设计网表中检测有无时序违规。
8,板级仿真:对信号完整信,电磁干扰等特征进行分析
9,芯片编程与调试:主要用内嵌在线逻辑分析仪
要求"可综合"的原因:veriloghdl并不是硬件设计语言而是硬件描述语言,并非针对硬件设计而开发的语言。
开发:可综合的功能模块开发
用于测试的仿真模块开发
数字表示法:
若A是正数,则A的原码=反码=补码
若A是负数,则:
反码=A原码取反
补码=反码+1
常用的时钟波形:方波,锯齿波,正弦波
时钟占空比:在一串理想脉冲序列中,正脉冲的持续时间与总周期的比值。
对于Xilinx器件,一个Slice包含2个FF和2个ULT。
对于Altera器件,一个LE包含1个FF和1个ULT。
在设计中,面积,速度,功耗可以相互转换
面积和速度互换的方式:模块复用,乒乓操作,串并变换,流水线
功耗:
静态功耗:主要由晶体管泄露电流引起,与设计代码无关
动态功耗:激励信号发生变化时消耗的功率,分为:
翻转功耗:一个驱动元件在对负载电容进行充放电时消耗的功耗,电路电压翻转越频繁,功耗越大。
内部功耗:晶体管电压发生翻转时由于瞬间导通而产生的功耗,翻转越慢越显著
动态功耗估算方法:求和每个设计单元的功耗:P=sum(C*V^2*E*f*1000)
单位:P,功耗mW;C,电容F;V,电压V;E,翻转频率,即每个时钟周期翻转次数;f,工作频率Hz
SoC:单芯片集成系统
设计模式:自顶向下层次,模块化模式
软核:综合之前的RTL级模型,只经过功能仿真。
固核:带有布局规划的软核,RTL代码+对应具体工艺网表。
硬核:布局和工艺固定,经过前端和后端验证的设计版图,不允许用户修改。
FPGA结构:
1.IOBs:可编程输入输出单元,即I/O单元。划分为若干bank,接口电压由Vcco决定,一个bank一种Vcco
2.CLBs:可配置逻辑块,即基本逻辑单元。每个CLB都包含一个可配置开关矩阵,对其配置以便处理组合逻辑,移位寄存器或RAM。
3.DCM:数字时钟管理模块,
4.BRAM:嵌入式快RAM
5.硬核乘法器
6.布线资源:全局布线资源:全局时钟,全局复位/置位
长线资源:bank间高速信号和次全局信号
短线资源:基本逻辑单元互连
分布式布线资源:专有时钟.复位等控制信号线
VerilogHDL程序结构
模块是VerilogHDL最基本的概念,也是最常用的基本单元,是硬件电路的逻辑实体。
模块的结构:
----------------------------
module module_name(port_list)
//声明各种变量和信号
reg //寄存器
wire //线网
parameter //参数
input //输入信号,模块内不可写,线网型
output //输出信号,模块内不可读,线网型
inout //输入输出信号
function //函数
task //任务
......
//程序代码
initial assignment
always assignment
module assignment
gate assignment
UDP assignment
continous assignment
endmodule
-------------------------------
端口位宽:
[M:N],若 M>N 降序,若 M
浙公网安备 33010602011771号