- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
硬件基础知识及个人学习心得 北京航空航天大学 硬件设计常用的软件工具 电路设计流程 电路设计中的搜索与参考 注意事项 个人读博士学习心得 Outline 硬件设计包括了原理图及PCB图的设计、硬件代码设计等几个部分。 原理图及PCB版图设计工具:1)protel、cadence(原理图绘制部分是capture软件,PCB版图设计部分是PCB Editor)。 Capture 设计包括原理图封装及原理图中各元器件连接;PCB设计部分主要是各元器件的PCB封装,及元器件间连线,还包括差分对处理,电磁隔离,电源层和地层的设计。 硬件设计中常用到的软件工具 可编程器件的开发工具: DSP主流产品分为浮点型和定点型产品:开发工具是CCS FPGA主要分为两大主流产品:altera公司的cyclone\Stratix系列的产品,及Xillinx公司的Spartan\Virtex系列产品。相应的开发软件分别为QuartusII及ISE软件,第三方软件Synplify不常用(大同小异)。 硬件设计中常用到的软件工具 至上而下的设计思路 1)分析功能需求 划分为几个子功能模块,单独设计每个子模块。 主要就是器件选型、器件典型工作电路配置(芯片资料网: TI官网:电源、AD/DA Xillinx官网:FPGA\CPLD\FLASH Altera官网:FPGA AD公司官网:AD/DA器件) 2)统筹考虑各模块间匹配、隔离、及供电 3)跳线(0欧)电阻的应用,减少风险。 电路设计流程 至上而下的设计思路 4)利用capture软件完成原理图绘制 5)利用Allego软件完成PCB版图绘制 PCB版图与原理图设计是个迭代完善的过程 6)硬件电路的调试: 先检查供电是否正常,程序下载是否正常; 测试芯片的供电及输入输出,对于关键功能芯 片,留有测试孔方便调试 电路设计流程 对于可编程芯片后期程序开发: (针对DSP\FPGA\CPLD) 编程语言: DSP:c程序,开发流程类似于单片机,主要 1)初始化文件cmd配置,定义了各存储区起始地址及长度;同时定义了各外部接口的地址 2)运行主程序:先完成DSP初始化配置:设置其工作频率及中断允许控制等 3)完成相应功能的子程序或中断程序设计 4)开发工具CCS,支持软调试; 5)在线JTAG测试及FLASH工作方式 电路设计流程 对于可编程芯片后期程序开发: (针对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\FPGA\CPLD) 编程语言: 2)几个常用的简单原则: Always 模块里的变量赋值均采用非阻塞式(=)操作,硬件综合的效果相当于一个寄存器,尽量让信号在时钟clock控制下同步变化 不同模块间的数据传递通常要经过寄存器缓冲一下;如data_adly=data_a 电路设计流程 对于可编程芯片后期程序开发: (针对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,
文档评论(0)