《数字芯片设计实训》实验指导书.docx
《《数字芯片设计实训》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数字芯片设计实训》实验指导书.docx(42页珍藏版)》请在冰豆网上搜索。
![《数字芯片设计实训》实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-2/2/34afb0df-ddb2-4ce4-adfd-f5e1023d1064/34afb0df-ddb2-4ce4-adfd-f5e1023d10641.gif)
《数字芯片设计实训》实验指导书
数字芯片设计实训
实验指导书
编写人:
许一男
审核人:
金永镐
延边大学工学院
电子信息通信学科
目 录
一、基础实验部分
实验一QuartusⅡ软件安装与测试…………………………………………………11
实验二全加器的VerilogHDL程序设计与FPGA应用……………………………11
实验三串行进位加法器的VerilogHDL程序设计与FPGA应用………………11
实验四选择器的VerilogHDL程序设计与FPGA应用……………………………11
实验五译码器的VerilogHDL程序设计与FPGA应用……………………………11
实验六编码器的VerilogHDL程序设计与FPGA应用……………………………11
实验七比较器的VerilogHDL程序设计与FPGA应用……………………………11
二、选做实验部分
实验八移位器的VerilogHDL程序设计与FPGA应用……………………………11
实验九存储器的VerilogHDL程序设计与FPGA应用……………………………11
实验十串行/并行转换器的VerilogHDL程序设计与FPGA应用……………11
实验十一触发器的VerilogHDL程序设计与FPGA应用………………………11
实验十二计数器的VerilogHDL程序设计与FPGA应用………………………11
三、创新实验部分
实验十三时序电路系统设计与FPGA应用…………………………………………11
实验十四ModelSim软件安装与测试………………………………………………11
实验十五FPGA设计与逻辑分析仪的应用…………………………………………11
实验一QuartusⅡ软件安装与测试
一、实验目的
1.熟悉QuartusⅡ软件的安装。
2.熟悉ADS软件的安装。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件
3.ADS软件
三、预习要求
1.预习半加器的工作原理。
2.预习半加器的VerilogHDL程序设计。
四、实验内容
首先总体上介绍数字芯片设计的软件环境,然后按照以下顺序来进行安装软件-《QuartusⅡ软件安装、设置license、安装ADS软件》。
软件安装结束之后设计半加器的VerilogHDL程序,并进行功能仿真和时序仿真。
内容1.QuartusⅡ软件安装
(1)在D盘里创建“quartus40”的文件夹,并在此文件夹里安装QuartusⅡ软件的相关程序;
(2)执行“install”,并进行安装QuartusⅡ软件。
内容2.设置license
(1)复制老师提供的“sys_cpt.dll”文件,并覆盖在“D:
\quartus40/bin”文件夹里的sys_cpt.dll文件;
(2)复制老师提供的“license.dat”文件,并粘贴在“D:
\quartus40”文件夹里面;
(3)运行\CMD\ipconfig/all,复制PhysicalAddress(如;000AA7B50010);
记事本来打开“D:
\quartus40\license.dat”文件;
所有的HOSTID数据替换成PhysicalAddress数据,并保存;
内容3.安装ADS软件。
内容4.设计半加器的VerilogHDL程序;
(1)在E盘里创建ha的文件夹,并在此文件夹里保存半加器的相关程序;
(2)半加器的程序设计;
moduleHA(x,y,S,C);
inputx,y;
outputS,C;
xor(S,x,y);
and(C,x,y);
endmodule
(3)半加器的逻辑电路结构;
(4)进行功能仿真和时序仿真,并验证。
五、实验报告
1.设计出半加器的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
六、思考题
1.理论上的波形图和QuartusⅡ软件来仿真出来的波形图之间存在什么关系?
为什么?
实验二全加器的VerilogHDL程序设计与FPGA应用
一、实验目的
1.利用半加器来设计全加器。
2.熟悉模块化设计方法和调用程序方法。
3.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习全加器的工作原理。
2.预习半加器、全加器的VerilogHDL程序设计。
四、实验内容
首先总体上介绍系统级的模块化设计方法,然后设计半加器的VerilogHDL程序,并通过功能仿真和时序仿真来验证。
利用模块化设计方法来实现全加器的VerilogHDL程序,并通过功能仿真和时序仿真来验证。
可以利用全加器的数学表达式来直接实现全加器的VerilogHDL程序。
利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证。
内容1.基于半加器程序的全加器系统设计
(1)设计半加器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
(2)利用模块化设计方法来实现全加器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
(4)全加器的模块图(假设半加器的程序名为HA.v);
(5)全加器的VerilogHDL程序(全加器的程序名设定为FA.v);
moduleFA(Xi,Yi,Ci,Sout,Cout);
inputXi,Yi;
outputSout,Cout;
wireS,C;
HAstage0(Xi,Yi,S,C);
HAstage1(Ci,S,Sout,Cout);
endmodule
内容2.利用全加器的数学表达式来直接实现全加器
(1)全加器的数学表达式
(2)全加器的VerilogHDL程序(全加器的程序名设定为FA.v);
moduleFA(Cin,x,y,s,Cout);
inputCin,x,y;
outputs,Cout;
assigns=x^y^Cin;
assignCout=(x&Y)|(x&Cin)|(y&Cin);
endmodule
内容3.通过QuartusⅡ软件的时序仿真和功能仿真来验证;
内容4.下载到FPGA开发板,并通过逻辑分析仪来验证。
五、实验报告
1.设计出全加器的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
六、思考题
1.在全加器设计过程中,调用半加器的设计方法和直接利用数学表达式方法来实现全加器之后输出结果有什么不一样?
为什么?
实验三串行进位加法器的VerilogHDL程序设计与
FPGA应用
一、实验目的
1.利用半加器、全加来设计串行进位加法器(4位数)。
2.熟悉模块化设计方法和调用程序方法。
3.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习串行进位加法器的工作原理。
2.预习半加器、全加器的VerilogHDL程序设计。
四、实验内容
内容1.设计半加器VerilogHDL程序,半加器的程序名设定为HA.v,并通过功能仿真和时序仿真来验证;moduleHA(x,y,S,C);
内容2.设计全加器VerilogHDL程序,全加器的程序名设定为FA.v,并通过功能仿真和时序仿真来验证;moduleFA(Xi,Yi,Ci,Sout,Cout);
内容3.设计4位数串行进位加法器的模块图(程序名设定为adder4.v);
内容4.设计4位数串行进位加法器的VerilogHDL程序;
moduleadder4(Cin,x,y,s,Cout);
inputCin;
input[3:
0]x,y;
output[3:
0]s;
outputCout;
wire[3:
1]c;
FAstage0(Cin,x[0],y[0],s[0],c[1]);
FAstage1(c[1],x[1],y[1],s[1],c[2]);
FAstage2(c[2],x[2],y[2],s[2],c[3]);
FAstage3(c[3],x[3],y[3],s[3],Cout);
endmodule
内容5.下载到FPGA开发板,并通过逻辑分析仪来验证。
内容6.测试程序;
`timescale1ns/1ns
moduletb_adder4;
regCin;
reg[3:
0]x,y;
wire[3:
0]s;
wireCout;
Adder4M_Adder4(.Cin(Cin),.x(x),.y(y),.s(s),.Cout(Cout));
initialbegin
Cin=1'b0;x=3'b0;y=3'b0;
#50Cin=1'b1;x=3'b010;y=3'b101;
#50Cin=1'b1;x=3'b110;y=3'b010;
end
endmodule
五、实验报告
1.设计出串行进位加法器(4位数)的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
六、思考题
1.整个系统的延迟时间是多少?
实验四选择器的VerilogHDL程序设计与FPGA应用
一、实验目的
1.设计2选1选择器的VerilogHDL程序。
2.利用2选1选择器模块来实现4选1、8选1选择器。
3.熟悉模块化设计方法和调用程序方法。
4.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习选择器的工作原理。
2.预习多选1选择器的模块图设计方法与VerilogHDL程序设计。
四、实验内容
内容1.2选1选择器的VerilogHDL程序设计(程序名设定为mux2to1.v)
(1)2选1选择器的逻辑电路图;
(2)设计2选1选择器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
modulemux2to1(w0,w1,s,f);
inputw0,w1,s;
outputf;
assignf=s?
w1:
w0;
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
(4)2选1选择器的测试程序;
`timescale1ns/1ns
moduletb_mux2to1;
reg[1:
0]w;
regs;
wiref;
parameterDELAY=10;
mux2to1M2to1(.w(w),.s(s),.f(f));
initial
begin
w=2'b10;s=1'b0;
#DELAYs=1;
#(DELAY*2)s=0;
#(DELAY*4)s=1;
#(DELAY*2)s=0;
#(DELAY*3)s=1;
#(DELAY*100)
$finish;
end
endmodule;
内容2.4选1选择器的VerilogHDL程序设计(程序名设定为mux4to1.v)
(1)4选1选择器的逻辑电路图;
(2)设计4选1选择器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
modulemux4to1(w0,w1,w2,w3,s,f);
inputw0,w1,w2,w3;
input[1:
0]s;
outputf;
assignf=s[1]?
(s[0]?
w3:
w2):
(s[0]?
w1:
w0);
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
(4)4选1选择器的测试程序;
`timescale1ns/1ns
moduletb_mux4to1;
regw0,w1,w2,w3;
reg[1:
0]s;
wiref;
parameterDELAY=50;
mux4to1M4to1(.w0(w0),.w1(w1),.w2(w2),.w3(w3),.s(s),.f(f));
initialbegin
w0=1'b0;w1=1'b1;w2=1'b0;w3=1'b1;s=2'b0;
#DELAYs=2'b01;
#(DELAY*2)s=2'b11;
#(DELAY*4)s=2'b10;
#(DELAY*20)s=2'b00;
#(DELAY*3)s=2'b01;
#(DELAY*300)
$finish;
end
endmodule
(5)直接设计4选1选择器的VerilogHDL程序;
modulemux4to1(w0,w1,w2,w3,s,f);
inputw0,w1,w2,w3;
input[1:
0]s;
outputregf;
always@(*)
if(s==2’b00)f=w0;
elseif(s==2’b01)f=w1;
elseif(s==2’b10)f=w2;
elsef=w3;
endmodule
内容3.8选1选择器的VerilogHDL程序设计(程序名设定为mux8to1.v)
(1)8选1选择器的模块图;
(2)设计8选1选择器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
modulemux8to1(w,s,f);
input[7:
0]w;
input[2:
0]s;
outputf;
wire[1:
0]M;
mux4to1mux1(w[3:
0],s[1:
0],M[0]);
mux4to1mux2(w[7:
4],s[1:
0],M[1]);
mux2to1mux3(M[1:
0],s[2],f);
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
五、实验报告
1.设计出2选1选择器、4选1选择器、8选1选择器的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
六、思考题
1.16选1选择器的设计方法一共有多少?
实验五译码器的VerilogHDL程序设计与FPGA应用
一、实验目的
1.设计2到4译码器的VerilogHDL程序。
2.利用2到4译码器模块来实现4到16译码器。
3.熟悉模块化设计方法和调用程序方法。
4.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习译码器的工作原理。
2.预习译码器的模块图设计方法与VerilogHDL程序设计。
四、实验内容
内容1.2到4译码器的VerilogHDL程序设计(程序名设定为dec2to4.v)
(1)设计2到4译码器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
moduledec2to4(W,En,Y);
input[1:
0]W;
inputEn;
outputreg[3:
0]Y;
always@(En,W)
case({En,W})
3’b100:
Y=4’b0001;
3’b101:
Y=4’b0010;
3’b110:
Y=4’b0100;
3’b111:
Y=4’b1000;
default:
Y=4’b0000;
endcase
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
(4)2到4译码器的测试程序;
`timescale1ns/1ns
moduletb_dec2to4;
reg[1:
0]W;
regEn;
wire[3:
0]Y;
parameterDELAY=50;
dec2to4D2to4(.W(W),.En(En),.Y(Y));
initialbegin
W=2'b00;En=1'b0;
#(DELAY*2)En=1'b1;W=2'b00;
#(DELAY*2)En=1'b1;W=2'b01;
#(DELAY*2)En=1'b1;W=2'b11;
#(DELAY*2)En=1'b1;W=2'b00;
#(DELAY*2)En=1'b1;W=2'b01;
#(DELAY*30)
$finish;
end
endmodule
内容2.4到16译码器的VerilogHDL程序设计(程序名设定为dec4to16.v)
(1)4到16译码器的模块图;
(2)设计4到16译码器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
moduledec4to16(W,En,Y);
input[3:
0]W;
inputEn;
output[15:
0]Y;
wire[3:
0]M;
dec2to4Dec1(W[3:
2],En,M[3:
0]);
dec2to4Dec2(W[1:
0],M[0],Y[3:
0]);
dec2to4Dec3(W[1:
0],M[1],Y[7:
4]);
dec2to4Dec4(W[1:
0],M[2],Y[11:
8]);
dec2to4Dec5(W[1:
0],M[3],Y[15:
12]);
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
五、实验报告
1.设计出2到4译码器、4到16译码器的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
实验六编码器的VerilogHDL程序设计与FPGA应用
一、实验目的
1.设计4到2编码器的VerilogHDL程序。
2.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习译码器的工作原理。
2.预习译码器的模块图设计方法与VerilogHDL程序设计。
四、实验内容
内容1.4到2编码器的VerilogHDL程序设计(程序名设定为enc4to2.v)
(1)设计4到2编码器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
moduleenc4to2(W,Y);
input[3:
0]W;
output[1:
0]Y;
reg[1:
0]Y;
always@(W,Y)
begin
if(W==4'b0001)Y=2'b00;
elseif(W==4'b0010)Y=2'b01;
elseif(W==4'b0100)Y=2'b10;
elseif(W==4'b1000)Y=2'b11;
elseY=2'bx;
endendmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
五、实验报告
1.设计出4到2编码器的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
实验七比较器的VerilogHDL程序设计与FPGA应用
一、实验目的
1.设计具有大于、等于、小于功能比较器的VerilogHDL程序。
2.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习比较器的工作原理。
2.预习多功能比较器的设计思路与VerilogHDL程序设计。
四、实验内容
内容1.具有大于、等于、小于功能的4位比较器
(程序名设定为cmopare4.v)
(1)设计比较器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
modulecmopare4(A,B,AeqB,AgtB,AltB);
input[3:
0]A,B;
outputregAeqB,AgtB,AltB;
always@(A,B)
begin
AeqB=0;
AgtB=0;
AltB=0;
if(A==B)
AeqB=1;
elseif(A>B)
AgtB=1;
else
AltB=1;
end
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
五、实验报告
1.设计出具有大于、等于、小于功能比较器的真值表。
2.利用QuartusⅡ调试出真值表相应的输入/输出波形图,并进行分析。
实验八移位器的VerilogHDL程序设计与FPGA应用
一、实验目的
1.设计向右/向左移位器的VerilogHDL程序。
2.熟悉多位移位器的设计方法。
3.熟悉使用FPGA与逻辑分析仪。
二、实验仪器及材料
1.电脑
2.QuartusⅡ软件及ADS软件
3.FPGA开发板
4.逻辑分析仪
三、预习要求
1.预习移位器的工作原理。
2.预习移位器的模块图设计方法与VerilogHDL程序设计。
四、实验内容
内容1.向右1位的4位数移位器的VerilogHDL程序设计(程序名设定为shift4.v)
(1)设计向右1位的4位数移位器的模块图;
(2)设计4位数移位器的VerilogHDL程序,并通过功能仿真和时序仿真来验证;
moduleshift4(W,Shift,Y,k);
input[3:
0]W;
inputShift;
outputreg[3:
0]Y;
outputregk;
always@(W,Shift)
begin
if(Shift)
begin
Y[3]=0;
Y[2:
0]=W[3:
1];
k=W[0];
end
else
begin
Y=W;
k=0;
end
end
endmodule
(3)利用FPGA开发板来实现全加器,并利用逻辑分析仪来验证;
内容2.4到16译码器的Verilog