版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA的一些规范以及该注意的问题0.模块级的注释每个模块开始要注明文件名、功能描述、引用模块、设计者、设计时间及版权信息等。/*========================Filename﹕Author﹕Description﹕Calledby﹕TopmoduleRevisionHistory﹕Revision1.0Email﹕Company﹕RobsenseTechnology.IncCopyright(c)2015,xxxxxTechnologyInc,Allrightreserved=========================*/1.宏(Macros)1、可以把所有的`define放在一个文件中,在编译原代码时首先把这个文件读入2、如果希望宏的作用域仅在一个模块中有效,就用parameter,==可以用来传递参数==。3、作用域仅在一个模块中有效,localparam,==不可用来传递参数==。4、parameter在本module内有效的定义,可用于参数传递;从上层传值进下一层常数时,需要在上层用#定义传的值在下层需要定义对应的参数名字parameterparameter_name;module_name#(.parameter_name(para_value),.parameter_name(para_value))inst_name(portmap);2.FSM1、verilog描述状态机时必须由parameter分配,而VHDL状态机状态可以在综合时分配产生。2、组合逻辑和时序逻辑分开用不同的进程3、状态机主要分为==Mealy==机和==Moore==机,Mealy机的状态和输入有关,而Moore机的状态转换和输入无关。3.输入不确定的组合逻辑电路在设计组合逻辑时,需要将不确定的输入转化成确定的输入,然后再完成组合逻辑。modulex2one(in,out);inputin;outputout;assignout=(in==1)?1:0;endmodule4.Verilog中文件输出输出函数的使用方法1、系统函数$fopen用于打开一个文件,并返回一个整数的文件指针2、系统函数$fdisplay就可以用这个文件指针在文件中实现写入信息。3、写完后用$fclose函数关闭文件==以下语句将”a”和”b”分别显示在”@%h%h”中的两个%h,并写入指针所指的文件W_file.txt==integerW_file;//定义文件指针W_file=$fopen(“W_file.txt”);$fdisplay(W_file,“@%h%h”,a,b);$fclose(W_file);4、读文件操作通过readmemh和readmemb函数来完成,分别对应的数据文件为十六进制和二进制reg[15:0]c[0:15];$readmemh(“R_file.txt”,c);5.Verilog中预处理verilog预处理与C很类似,预处理符号`开头。==注:在引用已定义的宏名时,必须在宏名前加`。==`includefile.v//包含文件file.v`defineX1//定义宏x值为1`ifdefXz=1;`elsez=0;`endif6.tri和wire的用法区别连线与三态线(tri)网语法和语义一致。tri是用来强调三态门的使用,三态门值01XZ。三态线可以用于描述多个驱动源驱动同一根线的线网类型;并且没有其他特殊的意义。7.pullup和pulldown的用法如果两个INOUT都处于高阻态,那么接收到的信号到底是什么状态呢?这实际上等效为两个INPUT端口连接,也就等效为INPUT端口悬空。这应该是取决于外围的驱动,添加的上拉或者下拉电阻,一般而言,FPGA添加的是上拉电阻,也就意味着此时chipscope采集的数据是高电平。FPGA管脚内部可以配置弱上拉或下拉电阻来实现Z状态下的控制。在verilog代码中直接可以定义信号线的==上拉==或者==下拉==模式或者在约束文件中也可以也可以通过约束文件中配置信号线的上拉或者下拉模式具体用法:pullupp1();8.下面代码中的wire和assign用法有什么区别paramenteraddr=4‘h0;input[13:0]aaa;wireccc=aaa[13:10]==addr;------------------------------------------assignbbb=(aaa==16’d0);从用法来说是一样的,assign是一种线的赋值语句,普通的io口也可以直接赋值,其实io口在电路上就是一种wire。reg与寄存器实际上应该反过来讲:-如果要综合寄存器,需要同时满足俩个条件:定义为reg,在always@posedge(negedge)block中赋值-如果要综合组合逻辑,可以(任意):定义为wire,用assign赋值定义为reg,只在always@(abcd)block中赋值在verilog语言中的reg类型只是语法意义上。reg类型的变量不能通过assign赋值,而wire类型的变量不能在alwaysblock中赋值。9.verilog中generater语句的使用,以及genvar用法在Verilog-2001里,新增加的generate语句拓展了这种用法(其思想来源于VHDL语言)。除了允许复制产生primitive和module的多个实例化,同时也可以复制产生多个net、reg、parameter、assign、always、initial、task、function。generate语句有generate-for、genreate-if和generate-case三种语句generate-for语句必须用genvar关键字定义for的索引变量。modulegray2bin2(bin,gray);prameterSIZE=8;ouput[SIZE-1:0]bin;input[SIZE-1:0]gray;reg[SIZE-1:0]bin;genvari;generatefor(i=0;i《SIZE;i=i+1)begin:bitassignbin[i]=^gray[SIZE-1:i]endendgenerateendmodule9.verilog中{}和{{}}的区别。{}表示拼接,{第一位,第二位,…}{{}}表示复制,{4{a}}等同于{a,a,a,a}10.IBUFDS、IBUFGDS和OBUFDS差分信号缓冲IBUFDS、IBUFGDS和OBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。IBUFDS是差分输入的时候用;OBUFDS是差分输出的时候用;IBUFGDS则是时钟信号专用的输入缓冲器。具体见笔记中《==FPGA差分信号缓冲的转换(IBUFDS、IB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国自由肩部训练机行业投资前景及策略咨询研究报告
- 2024至2030年中国标准液化石油气钢瓶行业投资前景及策略咨询研究报告
- 2024至2030年中国双拼式镝灯灯具行业投资前景及策略咨询研究报告
- 水处理智能监控行业市场前瞻与未来投资战略分析报告
- 动物用电喂食机市场洞察报告
- 包早餐的小旅馆服务行业风险投资态势及投融资策略指引报告
- 折纸用纸市场发展现状调查及供需格局分析预测报告
- 体育心理咨询行业市场前瞻与未来投资战略分析报告
- 全国2025届高三下学期第六次检测语文试卷含解析
- 使用电池的荧光棒市场洞察报告
- 孕产妇艾梅乙健康宣教
- 农业合作社全套报表(已设公式)-资产负债表-盈余及盈余分配表-成员权益变动表-现金流量表
- TCSAE 178-2021 电动汽车高压连接器技术条件
- 天气、温度、自然灾害记录表
- 姓名大全[共29页]
- 太上玄门晚坛功课经
- 【计量标准】JJF 1190-2019 尘埃粒子计数器校准规范
- modScan32使用手册
- 《建筑环境学》PPT课件.ppt
- 脂肪肝健康宣教PPT
- 基金会换届选举方案
评论
0/150
提交评论