硬件基础知识及学习体会分解
电路设计流程
至上而下的设计思路 1)分析功能需求 划分为几个子功能模块,单独设计每个子模块。 主要就是器件选型、器件典型工作电路配置 (芯片资料网: TI官网:电源、AD/DA Xillinx官网:FPGA\CPLD\FLASH Altera官网:FPGA AD公司官网:AD/DA器件) 2)统筹考虑各模块间匹配、隔离、及供电 3)跳线(0欧)电阻的应用,减少风险。
电路设计流程
对于可编程芯片后期程序开发: (针对DSP\FPGA\CPLD) 编程语言: DSP:c程序,开发流程类似于单片机,主要 1)初始化文件cmd配置,定义了各存储区起始地址及 长度;同时定义了各外部接口的地址 2)运行主程序:先完成DSP初始化配置:设置其工作 频率及中断允许控制等 3)完成相应功能的子程序或中断程序设计 4)开发工具CCS,支持软调试; 5)在线JTAG测试及FLASH工作方式
电路设计流程
对于可编程芯片后期程序开发: (针对DSP\FPGA\CPLD) 编程语言: 2)几个常用的简单原则: Always 模块里的变量赋值均采用非阻塞式(<=)操 作,硬件综合的效果相当于一个寄存器,尽量让信号 在时钟clock控制下同步变化 不同模块间的数据传递通常要经过寄存器缓冲一下; 如data_adly<=data_a
电路设计流程
电路设计流程(仿真部分)
软仿真 1)Modelsim时序仿真 主要是测试模块的编写testbench(参见夏宇闻老师的书), 充分利用实验室资源,大家以前做过的项目用过的 模块及测试程序的编写,拿来主义,先会用了。 2)qurtus或Ise软件均支持后仿真,及编译综合完成之 后再仿真,比较接近真实电路,考虑了延时及程序 中可能存在的竞争冒险等问题 实时在线测试: 逻辑分析仪或chipscope.就是通过JTAG口采集硬件板 卡中某个信号的状态在软件上显示,这个工具非常 方便,可以观察示波器和万用表所不能观察的好多 信号,并且可设出发条件。
电路设计流程
至上而下的设计思路 4)利用capture软件完成原理图绘制
5)利用Allego软件完成PCB版图绘制
PCB版图与原理图设计是个迭代完善的过程
6)硬件电路的调试:
先检查供电是否正常,程序下载是否正常; 测试芯片的供电及输入输出,对于关程芯片后期程序开发: (针对DSP\FPGA\CPLD) 编程语言: FPGA: 开发流程:从上到下,分析总体功能,划分各个子 模块(module);定义模块间接口,包括端口信号 名称,位宽等。 为增强程序可读性,一定要尽可能多加注释,尤其 是输入输出口部分的定义,同时变量名或端口名要 尽可能有明确的意义。下面是一个例子。
stream_detect( clk50m, rst, sync_rfifo0_rdb, //同步接收FIFO0的状态和控制信号 sync_rfifo0_ren, sync_rfifo0_STS, stream_db_in, //接收遥测码流的数据信号 stream_clk_in, //接收遥测码流的时钟信号 rx_ena, //接收数据使能 syn_status, //帧同步状态,0=搜索,1=校验,3=锁定,2=保护 //用户设置的参数 FrameLen, //帧长 0~2047 FrameHead, //帧头 四字节 向前对齐 FrameHeadLen, //帧头长度 1~4字节 Rand_en, //扰码使能 Src_type, //发送数据源类型 err_valid, //错误有效标志,高有效 err_frame_cnt,//误帧计数 total_frm_cnt,//总帧计数 err_bit_cnt,//比特错误计数 frmerr_limit//误帧上限
电路设计流程
对于可编程芯片后期程序开发: (针对DSP\FPGA\CPLD) 编程语言: FPGA:verilog程序,主要特点是并发式操作 1)不同的always模块,在同一时刻执行,参考夏宇闻 老师的教材,做几个实例,c的基础,并行的思维;
A=90;d1=1,d2=6,d3=3; Always @ (clk) begin d1<=A; D2<=d1; D3<=d2; end
硬件设计中常用到的软件工具
可编程器件的开发工具: DSP主流产品分为浮点型和定点型产品:开发 工具是CCS FPGA主要分为两大主流产品:altera公司的 cyclone\Stratix系列的产品,及Xillinx公司的 Spartan\Virtex系列产品。相应的开发软件分别 为QuartusII及ISE软件,第三方软件Synplify不 常用(大同小异)。
电路设计流程(仿真部分)
电路设计流程(仿真部分)
硬件设计中的参考与搜索
前人栽树,后人乘凉 1)面对一个新的需求,可以跟师兄师姐讨论一下,那些 部分跟以前设计的部分基本相同,或直接拿来应用,或 稍作修改,节省开发时间。 同时要求我们再做任何一个项目时,保证友好的接口风格, 写好文档,对已成功的设计版本打包压缩。 2)搜索主要是指芯片的选型及外围电路设计 主要原则是:参考已有开发板的电路设计,参考芯片数据 手册中给出的用户外围电路设计,常用网站: (AD);(datasheet) (FPGA); (filter) (AD\DSP\power\memorizer) (FPAG);(osillato
硬件基础知识及个人学习心得
北京航空航天大学
Outline
硬件设计常用的软件工具
电路设计流程
电路设计中的搜索与参考 注意事项 个人读博士学习心得
硬件设计中常用到的软件工具
硬件设计包括了原理图及PCB图的设计、硬件代 码设计等几个部分。 原理图及PCB版图设计工具:1)protel、cadence (原理图绘制部分是capture软件,PCB版图设计部 分是PCB Editor)。 Capture 设计包括原理图封装及原理图中各元器件 连接;PCB设计部分主要是各元器件的PCB封装, 及元器件间连线,还包括差分对处理,电磁隔离, 电源层和地层的设计。