Verilog HDL语言.ppt
文本预览下载声明
Verilog HDL复杂数字系统设计;本课程主要内容;;例1:一个挂在总线上的8位寄存器。
module register0(db,nce,nwe) ;
inout[7:0] db ;
input nce,nwe;
reg[7:0] q;
assign db= (nce ||(!nwe))?8bzzzzzzzz :q;
always @(posedge nwe)
begin
if(nce==0)
q=db;
end
endmodule;例2:带有异步清零端的同步4位二进制加法计数器;例3:分频器的设计
module nfrequency( rst, clk, q );
input rst, clk;
output [3:0] q;
reg [3:0] q;
always @( posedge clk or negedge rst )
if (!rst)
q=0;
else if (q==15) //可以实现16分频
q=0;
else
q=q+1;
endmodule;例4:11111010000序列检测器
module shift(q,s,d,clk);
output[11:0] q;
output s;
input d;
input clk;
reg[11:0] q;
reg s;
always @(posedge clk)
begin q=q1; q[0]=d; end
always @(posedge clk)
if(q==12b 11111010000)
s=1;
else
s=0;
endmodule;例5:设计一个容量为1kB的RAM。
module memory (d,a,we,rd);
inout[7:0] d;
input[9:0] addr;
input we,rd;
wire[7:0] q ;
assign d= rd ? q: 8’hzz;
lpm_ram_dp0 ram0(d ,a , a ,we,rd,q);
endmodule
;1.以结构描述方式实现下列逻辑:
Y=ABC+DE+ CFG
2.试设计一个具有使能端ncs的2-4译码器。
3.中断请求有效电平为高电平,中断请求输入线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,同步清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.试按下图设计VerilogHDL模型。;第一章 先进先出数据缓冲器设计;clk;clk;1.2 状态转换图
采用同步时序
状态机: 3个状态;1.3 FIFO模型设计之一
//FIFO
//Size:255Bytes
module fifo(clk,nreset,pe,ph,fifo_in,fifo_out,fifo_wr,fifo_rd,
busy,empty,full,state,wr,rd);
input clk,nreset,fifo_wr,fifo_rd;//
input[7:0] fifo_in;
output[1:0] state;
output empty,full,wr,rd,busy;//
output[7:0] fifo_out,pe,ph;
reg[1:0] state;
reg[7:0] fifo_out;
reg wr,rd,empty,full;//fifo write , read ,empty , full
reg[7:0]pe,ph; //fifo point:P_end
显示全部