数字模块实例-Verilog.doc

数字模块实例-Verilog.doc

ID:58528425

大小:4.75 MB

页数:61页

时间:2020-09-03

数字模块实例-Verilog.doc_第1页
数字模块实例-Verilog.doc_第2页
数字模块实例-Verilog.doc_第3页
数字模块实例-Verilog.doc_第4页
数字模块实例-Verilog.doc_第5页
资源描述:

《数字模块实例-Verilog.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、加、减法器21、半加器22、全加器23、串行进位加法器(行波进位加法器)44、超前进位加法器(先行进位加法器)45、进位链加法器、跳跃进位加法器76、进位旁路加法器、线性进位选择加法器等97、减法器9二、乘法器101、定点原码乘法器102、加法树乘法器123、查找表乘法器134、布尔乘法器14三、CORDIC数字计算机18四、Johnson计数器21五、移位寄存器221、串并转换模块222生成伪随机数及伪随机序列应用设计243桶形移位寄存器(循环移位寄存器)27六、编码译码器291、差错控制编码292、HDB3编码与译

2、码373曼彻斯特编译码器39RS(204,188)译码器464、Gray码与二进制码的转换465、NRZI编码46七、加密解密模块481、DES加密模块48一、加、减法器1、半加器半加器:输入为两个二进制数,输出产生两个二进制数,一个和位、一个进位,不包括来自低位的进位。逻辑表达式为:,其电路符号为:2、全加器在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,这种运算为全加,其电路为全加器。逻辑表达式为:电路图:由半加器组成的结构如下:Verilog模型或3、串行进位加法器(行波进位加法器)依次将

3、低位全加器的进位输出端CO接到高位全加器的进位输入端CI,就可以构成多位加法器。//二进制行波进位加法器moduleripple_carry_adder(x,y,cin,sum,cout);parameterN=8;inputcin;input[N-1:0]x,y;output[N-1:0]sum;outputcout;regcout;reg[N-1:0]sum;regq[N:0];always@(xoryorcin)begin:ADDERintegeri;q[0]=cin;for(i=0;i<=N-1;i=i+1)beg

4、inq[i+1]=(x[i]&y[i])

5、(x[i]&q[i])

6、(y[i]&q[i]);sum[i]=x[i]^y[i]^q[i];endcout=q[N];endendmodule4、超前进位加法器(先行进位加法器)产生进位输出的情况是AB=1、A+B=1且CI=1,则得:即高位的进位输入不用等到低位计算完后就可得到,提高了计算速度,其电路结构如下:其电路符号Verilog描述:GP生成器:使用两个一位加法器与一个GP生成器设计两位的超前进位加法器同样可以进行继续扩展5、进位链加法器、跳跃进位加法器modulecarr

7、y_chain_adder(x,y,cin,sum,cout);parameterDSIZE=8;inputcin;input[DSIZE-1:0]x,y;output[DSIZE-1:0]sum;outputcout;regcout,q[DSIZE:0],p[DSIZE-1:0],g[DSIZE-1:0];reg[DSIZE-1:0]sum;always@(xoryorcin)begin:ADDERintegeri;q[0]=cin;for(i=0;i

8、i]=y[i];q[i+1]=(p[i])?q[i]:g[i];sum[i]=p[i]^q[i];endcout=q[DSIZE];endendmodule//二进制跳跃进位加法器modulecarry_skip_adder(x_in,y_in,c_in,sum,c_out);parameterDSIZE=12;parameterS=4;inputc_in;input[DSIZE-1:0]x_in,y_in;output[DSIZE-1:0]sum;reg[DSIZE-1:0]sum;outputc_out;regc_ou

9、t;integeri,j;reg[DSIZE:0]q;always@(x_inory_inorc_in)beginq[0]=c_in;begincarry_skip_add_cell(x_in[S-1:0],y_in[S-1:0],q[0],q[S:1]);for(j=0;j<=S-1;j=j+1)sum[j]=x_in[j]^y_in[j]^q[j];carry_skip_add_cell(x_in[2*S-1:S],y_in[2*S-1:S],q[S],q[2*S:S+1]);for(j=0;j<=S-1;j=j+1)

10、sum[S+j]=x_in[S+j]^y_in[S+j]^q[S+j];carry_skip_add_cell(x_in[3*S-1:2*S],y_in[3*S-1:2*S],q[2*S],q[3*S:2*S+1]);for(j=0;j<=S-1;j=j+1)sum[2*S+j]=x_in[2*S+j]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。