- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA语法
erliog hdl语法要点一、常用的数据类型1.四种常用的数据类型reg,wire,integer,parameter2.常量(1)数字A.整数1)B或b--二进制整数2)D或d--十进制3)H或h--十六进制4)O或o--八进制例子:11b00000000000注意:*位宽可省略,位宽由机器指定????? *进制也可省略,数字---默认是十进制?parameter READFLAG =11b00100000000;? //?parameter WRITERAM =11b01000000000;? //写RAM?parameter READRAM =11b10000000000;? //读RAM?parameter cur_inc?????? =1;?parameter cur_dec?????? =0;?parameter cur_shift???? =1;SETMODE?? :begin lcd_rs=0;lcd_rw=0;data[7:2]=6b000001;data[1]=cur_inc;data[0]=cur_noshift;B.x和z值,x--不定值,z-高阻值data=8bzzzz_zzzz;C.负值的写法-8d5 (正确)8d-5 (错误)D.下划线8b0100_11008上面的两个值一样,加下划线为增加可读性8b_0100_1100 (错误)(2)参数parameter 参数名1=表达式1,参数名2=表达式3;4.变量reg[3:0] dataout_buf[3:0];reg[3:0] dataout_code;
integer i;wire[7:0] cal;assign cal[0]=(dataout_buf[0]==9)?1:0;??????? //个位向十位进位标志assign cal[1]=(cal[0]dataout_buf[1]==9)?1:0;//十位向百位进位标志assign cal[2]=(cal[1]dataout_buf[2]==9)?1:0;//百位向千位进位标志assign cal[3]=(cal[2]dataout_buf[3]==9)?1:0;//千位向万位进位标志(1)存储器型变量reg[3:0] dataout_buf[5:0]; //dataout_buf--存储器名,[5:0]--存储器的个数,[3:0]--每个存储器的位宽注意存储器可单个使用。(2)网络型变量:常用的有两种:wire,tri(三态)(3)寄存器变量寄存器是数据存储单元的抽象。寄存器变量,通过赋值语句可以改变寄存器存储的值。二、常用的运算符1.重点:(1)三目运算r=s?t:u;//可形成一个条件语句(2)取反???3b001: begin????//发“来”????cnt=cnt+1;????if(cnt==22h3fffff)??????state=3b010;????if(clk_div2!=lai)?????clk_div2=clk_div2+1;????else begin?????clk_div2=0;?????out=~out;????end(3)位拼接运算符--{}1)可以把两个或多个信号的某些位拼接起来进行运算操作。2)格式:?? {信号1的某几位,信号2的某几位,...,信号n某几位}?? dial[7:0]={led[7],led[6],....,led[0]};?? dial[7]=led[7];?? dial[6]=led[6];?? ..........?? dial[0]=led[0];????? dial[7:0]={led[7:4],....,led[0]};???3)具有重要参考价值的拼接方式:?{a,b[3:0],w,3b101};//不同位宽的变量和整数值一起可以拼接成一个新的变量?{a,b[3],b[2],b[1],b[0],w,1b1,1b0,1b1};?注意:?A.dial[7:0]=led[7:0] //注意的做不到每个控制每个led灯?B.{4{w}}={w,w,w,w}?C.{b,{3(a,b)}}={b,a,b,a,b,a,b}(4)缩减运算符---是单目运算,与、或、非运算1)先将操作数的第一位与第二位进行与或非运行2)将运算结果与第三位进行与、或、非运算,直至最后一位。使用方法:reg [3:0] B;reg C;C= B;相当于:C=((B[0]B[1])B[2])B[3];三、块语句1.常用的是两种语句块:begin ...end--顺序
文档评论(0)