能够进行不同级别的描述: 开关级->门级->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
转载于:https://www.cnblogs.com/evelio/p/3272664.html