资源描述:
《Verilog HDL语言.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VerilogHDL复杂数字系统设计南通大学电子信息学院本课程主要内容数字系统实例:FIFO异步串行通信接口调制解调器I2C接口的EEPROM读写器CISCCPURISCCPU例1:一个挂在总线上的8位寄存器。moduleregister0(db,nce,nwe);inout[7:0]db;inputnce,nwe;reg[7:0]q;assigndb=(nce
2、
3、(!nwe))?8'bzzzzzzzz:q;always@(posedgenwe)beginif(nce==0)q<=db;endendmodul
4、e复习例2:带有异步清零端的同步4位二进制加法计数器modulencounter(rst,clk,q);inputrst,clk;output[3:0]q;reg[3:0]q;always@(posedgeclkornegedgerst)if(!rst)q<=0;elseif(q==15)q<=0;elseq<=q+1;endmodule同步清零?例3:分频器的设计modulenfrequency(rst,clk,q);inputrst,clk;output[3:0]q;reg[3:0]q;always@(p
5、osedgeclkornegedgerst)if(!rst)q<=0;elseif(q==15)//可以实现16分频q<=0;elseq<=q+1;endmodule同步清零?其它分频系数?例4:11111010000序列检测器moduleshift(q,s,d,clk);output[11:0]q;outputs;inputd;inputclk;reg[11:0]q;regs;always@(posedgeclk)beginq<=q<<1;q[0]<=d;endalways@(posedgeclk)if(q
6、==12'b11111010000)s<=1;elses<=0;endmodule例5:设计一个容量为1kB的RAM。modulememory(d,a,we,rd);inout[7:0]d;input[9:0]addr;inputwe,rd;wire[7:0]q;assignd=rd?q:8’hzz;lpm_ram_dp0ram0(d,a,a,we,rd,q);endmodule1.以结构描述方式实现下列逻辑:Y=ABC+DE+CFG2.试设计一个具有使能端ncs的2-4译码器。3.中断请求有效电平为高电平,
7、中断请求输入线INTR0—INTR15中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,同步清
8、0信号为rst。clk上升沿时刻,当inc=1计数器加2,当dec=1计数器减1,其它情况时计数器保持不变。9.设计一个16位移位寄存器。10.设计一个16位双向移位寄存器,当d=0时右移,d=1时左移。11.设计一个产生0100100111的序列信号发生器。12.试以调用库函数的方法设计一个容量为8K×24bit的RAM。其双向数据线为D[0:23],地址线为A[0:12],写信号为new(低电平有效),读信号为nrd(低电平有效)。13.设计一个位宽为8位、深度为8层的堆栈。14.试按下图设计Verilo
9、gHDL模型。s0s1s2s3s411/00?/010/101/000/11?/01?/000/001/100/01?/01?/010/100/001/1?1/0第一章先进先出数据缓冲器设计1.1FIFO工作原理先进先出数据管理ph-----头指针(指向第一个数据)pe------尾指针(指向第一个空单元)判缓冲器空条件:当pe=ph--------空判缓冲器满条件:当pe+1=ph-----满clknresetfifo_infifo_outfifo_wrfifo_rdbusyemptyfullFIFOclk
10、nresetfifo_infifo_outfifo_wrfifo_rdbusyemptyfullFIFOfifo_infifo_outrdwrphpe,,,,,qrdenwrenwraddressdatardaddressRAM1.2状态转换图采用同步时序状态机:3个状态stopwritereadfifo_rd=1/rd=1fifo_rd=0/rd=0fifo_wr=1/wr=1fifo_wr=0/