欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    VerilogHDL语言学习教程.pptx

    • 资源ID:77384326       资源大小:3.75MB        全文页数:234页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VerilogHDL语言学习教程.pptx

    本课程主要内容数字系统实例:FIFO异步串行通信接口调制解调器I2C接口的EEPROM读写器CISCCPURISCCPU第1页/共234页第一页,编辑于星期日:七点 三十一分。第2页/共234页第二页,编辑于星期日:七点 三十一分。例1:一个挂在总线上的8位寄存器。module register0(db,nce,nwe);inout7:0 db;input nce,nwe;reg7:0 q;assign db=(nce|(!nwe)?8bzzzzzzzz:q;always(posedge nwe)begin if(nce=0)q=db;endendmodule复习第3页/共234页第三页,编辑于星期日:七点 三十一分。例2:带有异步清零端的同步4位二进制加法计数器module ncounter(rst,clk,q);inputrst,clk;output3:0 q;reg3:0 q;always(posedge clk or negedge rst)if(!rst)q=0;else if(q=15)q=0;else q=q+1;endmodule同步清零?第4页/共234页第四页,编辑于星期日:七点 三十一分。例3:分频器的设计module nfrequency(rst,clk,q);input rst,clk;output3:0 q;reg3:0 q;always(posedge clk or negedge rst)if(!rst)q=0;else if(q=15)/可以实现16分频q=0;elseq=q+1;endmodule同步清零?其它分频系数?第5页/共234页第五页,编辑于星期日:七点 三十一分。例4:序列检测器module shift(q,s,d,clk);output11:0 q;output s;input d;input clk;reg11:0 q;reg s;always(posedge clk)beginq=q1;q0=d;endalways(posedge clk)s=1;else s=0;endmodule第6页/共234页第六页,编辑于星期日:七点 三十一分。例5:设计一个容量为1kB的RAM。module memory(d,a,we,rd);inout7:0 d;input9:0 addr;input we,rd;wire7:0 q;assign d=rd?q:8hzz;lpm_ram_dp0 ram0(d,a,a,we,rd,q);endmodule第7页/共234页第七页,编辑于星期日:七点 三十一分。1.以结构描述方式实现下列逻辑:Y=ABC+DE+CFG2.试设计一个具有使能端ncs的2-4译码器。3.中断请求有效电平为高电平,中断请求输入线INTR0INTR15中INTR15优先权最高。试设计一个中断优先权编码器。当有中断请求时,INT=1,同时输出中断请求输入线的编码V;否则INT=0,V的输出任意。4.试设计一个4位加减运算器,输入为A、B、CIN、M,输出为OUT和COUT。当M=0时执行加法运算,M=1时,执行减法运算。5.试设计一个14分频器,要求占空比1:1。6.试设计一个具有三态输出缓冲的8位数据寄存器。7.试设计一个具有清0和置数功能的8位二进制加1计数器。8.设计一个8位的加/减计数器。时钟信号为 clk,同步清0信号为rst。clk上升沿时刻,当inc=1计数器加2,当dec=1计数器减1,其它情况时计数器保持不变。9.设计一个16位移位寄存器。10.设计一个16位双向移位寄存器,当d=0时右移,d=1时左移。11.设计一个产生0100100111的序列信号发生器。第8页/共234页第八页,编辑于星期日:七点 三十一分。12.试以调用库函数的方法设计一个容量为8K24bit的RAM。其双向数据线为D 0:23,地址线为A0:12,写信号为new(低电平有效),读信号为nrd(低电平有效)。13.设计一个位宽为8位、深度为8层的堆栈。14.试按下图设计VerilogHDL模型。s0s1s2s3s411/00?/010/101/000/11?/01?/000/001/100/01?/01?/010/100/001/1?1/0第9页/共234页第九页,编辑于星期日:七点 三十一分。第一章 先进先出数据缓冲器设计1.1 FIFO工作原理先进先出数据管理 ph-头指针(指向第一个数据)pe-尾指针(指向第一个空单元)判缓冲器空条件:当pe=ph-空判缓冲器满条件:当pe+1=ph-满第10页/共234页第十页,编辑于星期日:七点 三十一分。clknresetfifo_infifo_outfifo_wrfifo_rdbusyemptyfullFIFO第11页/共234页第十一页,编辑于星期日:七点 三十一分。clknresetfifo_infifo_outfifo_wrfifo_rdbusyemptyfullFIFOfifo_infifo_outrdwrphpe,qrdenwrenwraddressdatardaddressRAM第12页/共234页第十二页,编辑于星期日:七点 三十一分。1.2状态转换图采用同步时序状态机:3个状态stopwritereadfifo_rd=1/rd=1fifo_rd=0/rd=0fifo_wr=1/wr=1fifo_wr=0/wr=0n写操作-需要2个clk完成n读操作-需要2个clk完成第13页/共234页第十三页,编辑于星期日:七点 三十一分。1.3FIFO模型设计之一/FIFO/Size:255Bytesmodulefifo(clk,nreset,pe,ph,fifo_in,fifo_out,fifo_wr,fifo_rd,busy,empty,full,state,wr,rd);inputclk,nreset,fifo_wr,fifo_rd;/input7:0fifo_in;output1:0state;outputempty,full,wr,rd,busy;/output7:0fifo_out,pe,ph;reg1:0state;reg7:0fifo_out;regwr,rd,empty,full;/fifowrite,read,empty,fullreg7:0pe,ph;/fifopoint:P_end,P_headparameterwrite=1,read=2,stop=0;第14页/共234页第十四页,编辑于星期日:七点 三十一分。always(posedgeclk)if(nreset=0)beginpe=0;ph=0;endelsecase(state)stop:if(fifo_wr=1&pe+1!=ph)/writestartbeginrd=0;wr=1;state=write;busy=1;endelseif(fifo_rd=1&pe!=ph)/readstartbeginwr=0;rd=1;state=read;busy=1;endelsebeginwr=0;rd=0;state=stop;busy=0;if(ph=pe)empty=1;elseif(pe+1=ph)full=1;elsebeginempty=0;full=0;endend第15页/共234页第十五页,编辑于星期日:七点 三十一分。write:if(fifo_wr=0)/endofwritebeginpe=pe+1;wr=0;rd=0;state=stop;busy=0;empty=0;if(pe+2=ph)full=1;elsefull=0;endread:if(fifo_rd=0)/endofreadbeginph=ph+1;wr=0;rd=0;state=stop;busy=0;full=0;if(ph+1=pe)empty=1;elseempty=0;endendcaselpm_ram_dp1ram0(fifo_in,pe,ph,wr,rd,fifo_out);/modulelpm_ram_dp0(data,wraddress,rdaddress,wren,rden,q);endmodule第16页/共234页第十六页,编辑于星期日:七点 三十一分。仿真结果:第17页/共234页第十七页,编辑于星期日:七点 三十一分。1.4 FIFO模型设计之二n支持连续写,连续读。n启动写操作,外部单一时钟节拍写,实际完成需滞后一拍n启动读操作,外部单一时钟节拍读,但需等待一拍n读、写不可同时进行第18页/共234页第十八页,编辑于星期日:七点 三十一分。/Fifo of continuous operation /Size:255Bytesmodule fifo_c(clk,nreset,pe,ph,fifo_in,fifo_out,data,fifo_wr,fifo_rd,busy,empty,full,state,wr,rd);input clk,nreset,fifo_wr,fifo_rd;/input7:0 fifo_in;output1:0 state;output empty,full,wr,rd,busy;/output7:0 fifo_out,pe,ph,data;reg1:0 state;reg7:0 fifo_out,data;reg wr,rd,empty,full,busy;/fifo write,read,empty,fullreg7:0pe,ph;/fifo point:P_end,P_headparameter write=1,read=2,stop=0;第19页/共234页第十九页,编辑于星期日:七点 三十一分。always(posedge clk)if(nreset=0)begin pe=0;ph=0;endelse case(state)stop:if(fifo_wr=1&pe+8b00000001!=ph)/write start begin rd=0;wr=1;state=write;busy=1;data=fifo_in;end else if(fifo_rd=1&pe!=ph)/read start begin wr=0;rd=1;state=read;busy=1;end else begin wr=0;rd=0;state=stop;busy=0;if(ph=pe)empty=1;else if(pe+1=ph)full=1;else begin empty=0;full=0;end end 第20页/共234页第二十页,编辑于星期日:七点 三十一分。write:begin pe=pe+8b00000001;data=fifo_in;if(fifo_wr=0)/end of write begin wr=0;rd=0;state=stop;busy=0;empty=0;if(pe+8b00000010=ph)full=1;else full=0;end else /write continue if(pe+8b00000010=ph)begin /buffer is full.not to write.full=1;wr=0;rd=0;state=stop;busy=0;empty=0;end else /write continue begin wr=1;rd=0;state=write;busy=1;empty=0;end end第21页/共234页第二十一页,编辑于星期日:七点 三十一分。read:begin ph=ph+8b00000001;if(fifo_rd=0)/end of read begin wr=0;rd=0;state=stop;busy=0;full=0;if(ph+8b00000001=pe)empty=1;else empty=0;end else /read continue if(ph+8b00000001=pe)/empty begin wr=0;rd=0;state=stop;busy=0;full=0;end else/not empty begin wr=0;rd=1;state=read;busy=1;end end endcaselpm_ram_dp1 ram0(data,pe,ph,wr,rd,clk,fifo_out);endmodule第22页/共234页第二十二页,编辑于星期日:七点 三十一分。实验1FIFO设计与仿真验证要求:缓冲大于100级数据宽度16位第23页/共234页第二十三页,编辑于星期日:七点 三十一分。习题1设计一个产生0100100111的序列信号发生器。习题2试以调用库函数的方法设计一个容量为8K24bit的RAM。其双向数据线为D 0:23,地址线为A0:12,写信号为new(低电平有效),读信号为nrd(低电平有效)。习题3 设计一个8位的加/减计数器。时钟信号为 clk,同步清0信号为rst。clk上升沿时刻,当inc=1计数器加2,当dec=1计数器减2,其它情况时计数器保持不变。习题4设计一个位宽为8位、深度为8层的堆栈。第24页/共234页第二十四页,编辑于星期日:七点 三十一分。第二章定时器/计数器接口电路设计目的:设计一个与INTEL8253兼容的定时器/计数器2.1定时器/计数器接口电路的功能3通道、6种工作方式16位计数器(每个计数器可按二进制或十进制来计数,时钟脉冲下降沿使计数器进行减1操作)计数器初值寄存器GATECLKiOUTi减1计数器16位计数通道结构:第25页/共234页第二十五页,编辑于星期日:七点 三十一分。可编程可编程地址线地址线:A1A0端口地址端口地址:A1A0=0 0-CN0数据端口 0 1-CN1数据端口 1 0-CN2数据端口 1 1-控制端口数据线:D7-D0控制线:/we,/rd,/cs通道I/O:clk0,out0,gate0 clk1,out1,gate1 clk2,out2,gate2第26页/共234页第二十六页,编辑于星期日:七点 三十一分。2.2 82532.2 8253的内部结构和引脚特性的内部结构和引脚特性第27页/共234页第二十七页,编辑于星期日:七点 三十一分。2.3 8253控制字格式 第28页/共234页第二十八页,编辑于星期日:七点 三十一分。编程步骤:先写控制字(到控制口)再写计数器初值(到相应的通道端口)第29页/共234页第二十九页,编辑于星期日:七点 三十一分。2.4工作方式与工作时序1方式0(单脉冲发生器)计数器只计一遍。控制字写入后,OUT端为低;当计数初值写入后,在下一个CLK脉冲的下降沿将计数初值寄存器内容装入减1计数寄存器,然后计数器开始减1计数,在计数期间,当减1计数器回0之前,输出端OUT维持低电平。当计数值回0时,OUT输出端变为高电平,并保持到重新写入新的控制字或新的计数值为止。可作为中断请求信号。在计数过程中,若GATE信号变为低电平,则在低电平期间暂停计数,减1计数寄存器值保持不变。在计数过程中,若重新写入新的计数初值,则在下一个CLK脉冲的下降沿,减1计数寄存器以新的计数初值重新开始计数过程。第30页/共234页第三十页,编辑于星期日:七点 三十一分。82538253方式方式0 0三种情况的时序波形三种情况的时序波形第31页/共234页第三十一页,编辑于星期日:七点 三十一分。方式2(周期脉冲发生器)可产生周期性的负脉冲信号,负脉冲宽度为一个时钟周期。写入控制字后,OUT端变为高电平,若GATE为高电平,当写入计数初值后,在下一个CLK的下降沿将计数初值寄存器内容装入减1计数寄存器,并开始减1计数。当减1计数寄存器的值为1时,OUT端输出低电平;减1计数寄存器回0时OUT端输出高电平,并开始一个新的计数过程。在减1计数寄存器未减到1时,GATE信号由高变低,则停止计数。但当GATE由低变高时,则重新将计数初值寄存器内容装入减1计数寄存器,并重新开始计数。GATE信号保持高电平,但在计数过程中重新写入计数初值,则当正在计数的一轮结束并输出一个CLK周期的负脉冲后,将以新的初值进行计数。第32页/共234页第三十二页,编辑于星期日:七点 三十一分。8253方式2下的三种情况:第33页/共234页第三十三页,编辑于星期日:七点 三十一分。2.5设计与仿真控制口编程状态机:state0=00-未编程或完毕01-已写控制字(等待输入数据)10-已写1字节数据(等待输入下一数据)第34页/共234页第三十四页,编辑于星期日:七点 三十一分。通道0方式0状态机:cnt0_f=0-未启动(未装入计数初值寄存器内容)1-已装入,作减1计数 2-已回0,不自动装入通道0方式2状态机:cnt0_f=0-未启动或等待装入计数初值寄存器内容 1-已装入,作减1计数 启动标志:启动标志:start0_f=0,不启动不启动=1,启动(当编程启动(当编程完毕)完毕)第35页/共234页第三十五页,编辑于星期日:七点 三十一分。/timer/counter:8253moduletimer(out0,clk0,d,gate0,a0,a1,nwe,nrd,ncs,cnt0,cnt0_f,control0);inputclk0,gate0,a0,a1,nwe,nrd,ncs;inout7:0d;outputout0;output15:0cnt0;output1:0cnt0_f;output7:0control0;reg7:0control0;reg15:0cnt0_b,cnt0;reg1:0state0;reg1:0cnt0_f;regstart0_f,out0;wireclock0;第36页/共234页第三十六页,编辑于星期日:七点 三十一分。assignd=(!nrd&!ncs&!a0&!a1)?cnt07:0:8bzzzzzzzz;/readlow_byteofcnt0assignd=(!nrd&!ncs&a0&!a1)?cnt015:8:8bzzzzzzzz;/readhigh_byteofcnt0assignclock0=clk0&start0_f&gate0;第37页/共234页第三十七页,编辑于星期日:七点 三十一分。always(posedgenwe)always(posedgenwe)/8253programcase(state0)case(state0)2b00:2b00:if(ncs=0&a0=1&a1=1&d7:6=2b00)if(ncs=0&a0=1&a1=1&d7:6=2b00)begincontrol0=d;start0_f=0;state0=2b01;endbegincontrol0=d;start0_f=0;state0=2b01;end2b01:2b01:if(control05:4=2b11&a0=0&a1=0)if(control05:4=2b11&a0=0&a1=0)beginstate0=2b10;cnt0_b7:0=d;endbeginstate0=2b10;cnt0_b7:0=d;endelseif(control05:4=2b01&a0=0&a1=0)elseif(control05:4=2b01&a0=0&a1=0)beginstate0=2b00;start0_f=1;cnt0_b7:0=d;endbeginstate0=2b00;start0_f=1;cnt0_b7:0=d;endelseif(control05:4=2b10&a0=0&a1=0)elseif(control05:4=2b10&a0=0&a1=0)beginbeginstate0=2b00;start0_f=1;cnt0_b15:8=d;endstate0=2b00;start0_f=1;cnt0_b15:8=d;end2b10:2b10:if(control05:4=2b11&a0=0&a1=0)if(control05:4=2b11&a0=0&a1=0)beginbeginstate0=2b00;start0_f=1;cnt0_b15:8=d;endstate0=2b00;start0_f=1;cnt0_b15:8=d;endendcaseendcase第38页/共234页第三十八页,编辑于星期日:七点 三十一分。always(negedgestart0_fornegedgeclock0)if(start0_f=0)begincnt0_f=0;out0=1;endelsebegincase(control03:1)2b000:2b000:if(start0_f=1)/mode0/state=2o00if(cnt0_f=0)/load/start_f=1begincnt015:0=cnt0_b15:0;cnt0_f=1;out0=0;endelseif(cnt0!=1&cnt0_f=1)beginout0=0;cnt0=cnt0-1;endelsebeginout0=1;cnt0_f=2;end第39页/共234页第三十九页,编辑于星期日:七点 三十一分。2b010:2b010:if(start0_f=1)/mode2state=2o00beginbeginif(cnt0_f=0)/loadbegincnt0=cnt0_b;cnt0_f=1;out0=1;endelseif(cnt0=2&cnt0_f=1)beginout0=0;cnt0=cnt0-1;cnt0_f=0;endelsecnt0=cnt0-1;endenddefault:cnt0_f=0;endcaseendendmodule第40页/共234页第四十页,编辑于星期日:七点 三十一分。方式0仿真结果:第41页/共234页第四十一页,编辑于星期日:七点 三十一分。方式2仿真结果:第42页/共234页第四十二页,编辑于星期日:七点 三十一分。实验二定时器/计数器设计与仿真验证第43页/共234页第四十三页,编辑于星期日:七点 三十一分。作业1.设计一个同步计数式单稳态触发器。如下图示,已知clk为10MHz,脉冲k触发后,输出q为100uS的脉冲。clkkq第44页/共234页第四十四页,编辑于星期日:七点 三十一分。2.设计一个16bit移位寄存器(右移),设移位时钟信号为clk。将RAM(256*16bit)中的数据不断依次取出,移位输出。3.试设计一个模块,能输出如下图所示的波形。t(us)1231V第45页/共234页第四十五页,编辑于星期日:七点 三十一分。modulegen(clk,reset,wren,din,wraddr,out);inputclk,reset,wren;input15:0din;input7:0wraddr;outputout;reg7:0rdaddr;regload;reg3:0count;reg15:0q;wirerden,out;第46页/共234页第四十六页,编辑于星期日:七点 三十一分。always(posedge clk)if(reset)begin count=0;load=1;rdaddr=0;endelse if(count=15)begin count=0;load=1;end else if(count=7)begin rdaddr=rdaddr+1;count=count+1;load=0;end else begin count=count+1;load=0;endalways(posedge clk)if(load)q=dout;else begin q1;q15=0;endlpm_ram_dp0 ram0(din,wraddr,rdaddr,wren,rden,dout);assign out=q0;assign rden=1;endmodule第47页/共234页第四十七页,编辑于星期日:七点 三十一分。第三章异步串行通信接口设计起始位D0D1D2D3D4D5D6D7停止位空闲状态异步串行通信的数据帧结构:波特率(baud rate)例:空闲状态起始起始位位1 1位位数据数据7-87-8位位校验校验位位1 1位位停止停止位位1 1位位第48页/共234页第四十八页,编辑于星期日:七点 三十一分。例3-1:异步串行输出接口UART_TXdinwrcedbftxdresetclkdbf-data buffer full第49页/共234页第四十九页,编辑于星期日:七点 三十一分。moduleuart_tx(clk,din,nreset,wr,ce,dbf,txd);inputclk,nreset,wr,ce;/clk=0.694MHz/baud=0.694Mhz/12=57.6kHzinput7:0din;outputtxd,dbf;reg7:0data;reg9:0shift;reg4:0count,t;reg3:0state;reg1:0state0;regdbf,tbr;/dbf-databufferfull.tbr-transmitbufferready.例3-1:第50页/共234页第五十页,编辑于星期日:七点 三十一分。assigntxd=shift0;always(posedgeclkornegedgenreset)if(nreset=0)state0=0;elsecase(state0)0:if(wr=1&ce=1)begindata=din;state0=1;end1:if(wr=0|ce=0)begindbf=1;state0=2;end2:if(tbr=1)begindbf=0;state0=0;endendcase第51页/共234页第五十一页,编辑于星期日:七点 三十一分。always(posedgeclkornegedgenreset)if(nreset=0)beginstate=0;shift=10b1;endelsecase(state)4b0000:if(t=11&dbf=1)begintbr=1;state=1;t=0;shift9=1;shift8:1=data7:0;shift0=0;/bit0:startbitendelseif(t11)t=t+1;4b0001:if(t=11)/bit1:d0beginshift1;shift9=1;state=2;t=0;tbr=0;endelset=t+1;4b0010:if(t=11)/bit2:d1beginshift1;shift9=1;state=3;t=0;endelset=t+1;4b0011:if(t=11)/bit3:d2beginshift1;shift9=1;state=4;t=0;endelset=t+1;第52页/共234页第五十二页,编辑于星期日:七点 三十一分。4b0100:if(t=11)/bit4:d3beginshift1;shift9=1;state=5;t=0;endelset=t+1;4b0101:if(t=11)/bit5:d4beginshift1;shift9=1;state=6;t=0;endelset=t+1;4b0110:if(t=11)/bit6:d5beginshift1;shift9=1;state=7;t=0;endelset=t+1;4b0111:if(t=11)/bit7:d6beginshift1;shift9=1;state=8;t=0;endelset=t+1;4b1000:if(t=11)/bit8:d7beginshift1;shift9=1;state=9;t=0;endelset=t+1;4b1001:if(t=11)/bit9:stopbeginshift1;shift9=1;state=0;t=0;endelset=t+1;default:begint=0;state=0;endendcaseendmodule第53页/共234页第五十三页,编辑于星期日:七点 三十一分。异步串行输出接口仿真AC75停止位起始位第54页/共234页第五十四页,编辑于星期日:七点 三十一分。AC710075停止位起始位第55页/共234页第五十五页,编辑于星期日:七点 三十一分。data例3-2:异步串行输入接口UART_RXrdceerrorrxdclkrdcrdc-receive data completed第56页/共234页第五十六页,编辑于星期日:七点 三十一分。单工异步串行输入、输出接口UART_TXdinwrcedbftxdresetclkdataUART_RXrdceerrorrxdclkrdcMPU1MPU 2第57页/共234页第五十七页,编辑于星期日:七点 三十一分。双工异步串行输入输出接口UARTdinwrcedbftxdresetclkdataUARTrdceerrorrxdclkMPU1MPU 2txdrxderrorrdcrdcresetrddbfwr第58页/共234页第五十八页,编辑于星期日:七点 三十一分。起始位D0D1D2D3D4D5D6D7停止位空闲状态如何识别起始位?如何判别数据?如何判别停止位?第59页/共234页第五十九页,编辑于星期日:七点 三十一分。moduleuart_rx(clk,rxd,rd,ce,data,s,t,error,rdc,nreset);inputclk,rxd,nreset;/clk=0.694MHzinputrd,ce;outputerror,rdc;/rdc-receivedatacompletedoutput7:0data;output3:0s;output4:0t;reg4:0t;reg3:0s;reg7:0data0,data1;regerror,rdc;regrdf;reg7:0data;/rdf-readdataflag例例3-2:第60页/共234页第六十页,编辑于星期日:七点 三十一分。always(ceorrd)if(ce&rd)=1)begindata=data1;rdf=1;endelsebegindata=8hzz;rdf=0;end第61页/共234页第六十一页,编辑于星期日:七点 三十一分。always(posedgeclk)/baud=57.600khzif(!nreset)begindata1=8h00;rdc=0;s=0;t=0;data0=8h00;error=0;endelsebeginif(rdf=1)rdc=0;case(s)0:if(rxd=1)begins=1;t=0;end/1:if(rxd=0)begins=2;t=t+1;end2:if(t=6)beginif(rxd=0)begins=3;t=0;error=0;endelsebegins=1;t=0;endendelset=t+1;第62页/共234页第六十二页,编辑于星期日:七点 三十一分。3:if(t=11)begindata00=rxd;t=0;s=4;endelset=t+1;4:if(t=11)begindata01=rxd;t=0;s=5;endelset=t+1;5:if(t=11)begindata02=rxd;t=0;s=6;endelset=t+1;6:if(t=11)begindata03=rxd;t=0;s=7;endelset=t+1;7:if(t=11)begindata04=rxd;t=0;s=8;endelset=t+1;8:if(t=11)begindata05=rxd;t=0;s=9;endelset=t+1;9:if(t=11)begindata06=rxd;t=0;s=10;endelset=t+1;10:if(t=11)begindata07=rxd;t=0;s=11;endelset=t+1;11:if(t=11)if(rxd=1)begint=0;s=0;data1=data0;error=0;rdc=1;endelsebeginerror=1;t=0;s=0;end/frameerrororoverflowerrorelset=t+1;default:begint=0;s=0;endendcaseendendmodule第63页/共234页第六十三页,编辑于星期日:七点 三十一分。异步串行输入接口仿真第64页/共234页第六十四页,编辑于星期日:七点 三十一分。实验3异步串行通信接口设计与仿真要求:1)设计异步串行通信接口发送模块并仿真2)设计异步串行通信接口接收模块并仿真3)设计顶层模块,实现与PC机通信第65页/共234页第六十五页,编辑于星期日:七点 三十一分。UART_TXdinwrcedbftxdresetclkdataUART_RXrdceerrorrxdclkrdcPCresetUARTDE2(RS232)(TTL)txdrxd(TTL)(RS232)MAX232第66页/共234页第六十六页,编辑于星期日:七点 三十一分。参考程序moduleuart(CLOCK_50,UART_RXD,UART_TXD,LEDR,LEDG,KEY);inputCLOCK_50;input0:0KEY;inputUART_RXD;outputUART_TXD;output0:0LEDR;output1:0LEDG;wire7:0data_rx;wirenreset,error,rdc,dbf;assignnreset=KEY0;/resetassignLEDR0=error;assignLEDG0=rdc;assignLEDG1=dbf;regrd_rx,ce_rx;regwr_tx,ce_tx;always(posedgeclk)beginif(rdc=1)begince_rx=1;rd_rx=1;endelsebegince_rx=0;rd_rx=0;endif(ce_rx=1&rd_rx=1)beginwr_tx=1;ce_tx=1;endelsebeginwr_tx=0;ce_txImport Assignment,打开对话框,调入引脚对应文件DE2_pin_assignments_uart.txt即可。2)Assignments-pins3)锁好引脚后由Processing-Start compilation进行全编译第75页/共234页第七十五页,编辑于星期日:七点 三十一分。DE2_pin_assignments_uart.txtTo,LocationKEY0,PIN_G26LEDR0,PIN_AE23LEDG0,PIN_AE22LEDG1,PIN_AF22CLOCK_50,PIN_N2UART_RXD,PIN_C25UART_TXD,PIN_B25第76页/共234页第七十六页,编辑于星期日:七点 三十一分。1)如果编译没有错误,准备下载。由Tools-Progammer2)硬件设置:Currently selected hardware:usb 下载:第77页/共234页第七十七页,编辑于星期日:七点 三十一分。3)弹出如下对话框,下载前做如下设置:点击“AddFile”,选择uart.sof文件,设置Mode为“JTAG”,点击“Start”,开始下载第78页/共234页第七十八页,编辑于星期日:七点 三十一分。在PC上运行”串口调试助手”设定波特率为57600,无校验,数据位8位,停止位1位在发送区发字符,接收区能收到.与PC机通信:第79页/共234页第七十九页,编辑于星期日:七点 三十一分。第4章调制解调器设计 在数字通信系统中,一般将原始信号经过量化编码变成二进制码流,称为基带信号。数字基带信号一般不适合于直接传输,如通过公共电话网络传输数字信号时,由于电话网络带宽为3.4KHZ,因此数字信号不能直接在上面传输。此时可将数字信号进行调制后再进行传输。第80页/共234页第八十页,编辑于星期日:七点 三十一分。4.12FSK调制原理第81页/共234页第八十一页,编辑于星期日:七点 三十一分。实现方法S2fsk(t)载波发

    注意事项

    本文(VerilogHDL语言学习教程.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开