欢迎来到天天文库
浏览记录
ID:14599318
大小:150.50 KB
页数:27页
时间:2018-07-29
《阶段 菜鸟阶段 fpga基本设计方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一口吃不成一个胖子FPGA学习之……目录1.杂记31.1FPGA中未赋初值寄存器的值31.2关于initial在仿真中的应用31.3仿真程序控制的变量31.4错误汇总31.5Inout口的编写办法31.6Component相当于assign不能用在什么always模块中71.7If-else不完全配套时71.8X实际上是071.9关于BRAM(BLOCKRAM)71.10一个FPGA设计最大能工作的频率71.11DCM不能直接接管脚?输出一般要先过一个buf再输出?81.12FPGA中不同BANK区别?DSP
2、概念?BUFG?81.13全局时钟只能跑一半?DCM输出时钟一般能跑1/4整芯片?81.14把F68013_PC_FPGA程序最大工作频率提高,方法:81.15单词翻译91.16时序报告解读及解决91.17关于FPGAEditor101.18未用管脚电平设置112.关于ChipScop112.1简介112.2关于常用核122.3重要操作132.4缺点132.5使用说明133Modesim与ISE联合仿真13一口吃不成一个胖子3.1安装方法,照下面操作即可实现联合仿真133.1.1安装注意事项143.2主要的优
3、点143.2.1关于波形比较143.2.2数据流窗口调试153.2.3代码覆盖率,这功能不错154.BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用164.1全局时钟资源的使用方法(五种)174.2全局时钟资源的例化方法184.3详解IBUFG/IBUFGDS+BUFG用法185.I2C网上程序精读(尽快抽空)185.1关于上复位18一口吃不成一个胖子FPGA设计1.杂记1.1FPGA中未赋初值寄存器的值在硬件平台中,当系统上电后,信号电平不是1就是0,不会存在X,因此,设计中用到的寄存器如果在
4、没有初始化的情况下,在不同的平台上,其初始状态是不一定的,存在两种可能全0或者全1,而在XILINx公司的FPGA/CPLD上,默认为0。1.2关于initial在仿真中的应用在实验中发现,硬件输出分频器已经获得了成功,但是仿真的结果却始终不对,老是输出X。原因如下:在不同的平台中,未赋于初值的寄存器的初始值不一样。一般情况下有人加一个复位信号,这个信号用来对未赋值的信号进行下初始等初始操作,但是,有时不用。这时,我们就必须要加个initial语句,虽然它是不可综合的,但是,在仿真操作时会对未赋值变量赋于一个
5、初值。这时仿真才可以正确的运行。1.3仿真程序控制的变量还要注意一点在仿真程序中,只能控制的是输入变量,而原程序中的中间变量和输出变量都不是受人工控制的。1.4错误汇总Cannotmixblockingandnonblockingassignmentsonsignali这种错误一般是因为程序中变量i阻塞和非阻塞一起使用了,解决的办法不要只看报错的那一行,而是要把这个变量的上下文全找一下,是否有混合使用的地方。lAlways程序块能够直接在@符号后面放置字符*,在这种情况下,模拟器创建一个隐含的灵敏度列表,它包
6、含了所有可能会影响到过程语句产生结果的那些信号。而同时,一个不完全灵敏度列表的“组合逻辑”其行为将具有时序特性。就是把所有的输入的变量全列进去。1.5Inout口的编写办法一口吃不成一个胖子下面是在网上找的一篇资料,是一个关于IO口的程序及测试程序的书写的完整例子。不错先谈下自己的体会:首先,IO口要做为输出口时,此时一定要用assign语句让IO口输出高阻态。在做测试程序时,也要用到assign但是,assign里面的判断语句的符号要反过来。其中inner_port与芯片内部其他逻辑相连,outer_por
7、t为芯片外部管脚,out_en用于控制双向端口的方向,out_en为1时,端口为输出方向,out_en为0时,端口为输入方向。assigna=((s[2:0]!=4))?ibus:8'bz;如上原程序中s为4时输出高阻,同时IO口为输入,不为4时,为输出。则对应测试程序为:assigna=((s[2:0]==4))?a_t:8'bz;可以发现s为4时,a口数据为a_t,也就是假定的外界的输入,此时a口为输入口。S不为4时,为高阻态,与原程序中比较不难发现其实相当于Z&*=*.用Verilog语言描述如下:mo
8、dulebidirection_io(inner_port,out_en,outer_port);inputout_en;inout[7:0]inner_port;inout[7:0]outer_port;assignouter_port=(out_en==1)?inner_port:8'hzz;assigninner_port=(out_en==0)?outer_port:8'hzz;endmod
此文档下载收益归作者所有