可编程实验报告.docx
《可编程实验报告.docx》由会员分享,可在线阅读,更多相关《可编程实验报告.docx(23页珍藏版)》请在冰点文库上搜索。
可编程实验报告
可编程逻辑器件设计实验报告
实验名称:
第三部分:
VerilogHDL中级实验
实验目的:
加深理解,熟练操作
实验时间:
2014年06月19日地点:
803实验室
学生姓名:
学号:
实验名称:
设计一个模10计数器(异步清零,同步置数)
1.实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
1、VerilogHDL代码
moduleM10_9(clk,set,reset,qout,data,cout);
inputclk,set,reset;
input[3:
0]data;
outputreg[3:
0]qout;
outputregcout;
always@(posedgeclk,negedgereset)
begin
if(!
reset)
begin
qout<=0;
cout<=0;
end
elseif(set==0)
begin
qout<=data;
cout<=0;
end
elseif(qout<9)
begin
qout<=qout+1;
cout<=0;
end
else
begin
qout<=0;
cout<=1;
end
end
endmodule
3.RTL视图
4.仿真结果
实验名称:
实验二
实验目的:
设计一个带有异步清零,同步置数功能的模60计数器
实验名称:
设计一个模60计数器(异步清零,同步置数)
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
moduleM60_10(clk,load,reset,a,cnt,cout);
inputclk,load,reset;
input[5:
0]a;
outputcout;
output[5:
0]cnt;
reg[5:
0]cnt;
regcout;
always@(posedgeclkornegedgereset)
begin
if(!
reset)
cnt<=6'b00_0000;
elseif(load)
cnt<=a;
else
begin
if(cnt<6'd59)
begin
cnt<=cnt+1;
cout<=0;
end
else
begin
cout<=1;
cnt<=6'b00_0000;
end
end
end
endmodule
3.RTL视图
4仿真结果
实验名称:
实验三
实验目的:
设计一个具有两个4bit的BCD码加法器
实验名称:
设计一个DCB码加法器(两个4bit)
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
moduleadd_sub(ina,inb,sum1,sum2);
input[3:
0]ina;
input[3:
0]inb;
output[4:
0]sum1;
output[4:
0]sum2;
reg[4:
0]sum1;
reg[4:
0]sum2;
always@(ina,inb)
begin
sum1<=ina-inb;
sum2<=ina+inb;
end
endmodule
3、RTL视图
3、仿真结果
实验名称:
实验四
实验目的:
设计一个具有4bit的加减计数器
实验名称:
设计一个4bit加减计数器
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
moduleadd4_12(a,clk,en,load,reset,out,cout);
input[3:
0]a;
inputclk,en,load,reset;
output[3:
0]out;
outputcout;
reg[3:
0]out;
regcout;
always@(posedgeclkornegedgereset)
begin
if(!
reset)
out<=4'b0000;
elseif(!
load)
out<=a;
elseif(!
en)
out<=out+1;
else
out<=out-1;
end
endmodule
3、RTL视图
4.仿真结果
实验名称:
实验五
实验目的:
设计一个具有2、4、8分频电路
实验名称:
设计一个2、4、8分频电路
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
modulefen_2_4_8(clk,clk_2,clk_4,clk_8);
inputclk;
outputclk_2,clk_4,clk_8;
regclk_2,clk_4,clk_8;
always@(posedgeclk)
begin
clk_2<=~clk_2;
end
always@(posedgeclk_2)
begin
clk_4<=~clk_4;
end
always@(posedgeclk_4)
begin
clk_8<=~clk_8;
end
endmodule
3、RTL视图
4、仿真结果
实验名称:
实验六
实验目的:
设计一个2N(N=7)分频器
实验名称:
设计一个2N分频电路(N=7)
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
modulediv_14(clk,out);
inputclk;
outputout;
regout;
reg[2:
0]temp;
always@(posedgeclk)
begin
if(temp<3'd6)
temp<=temp+1'b1;
else
begin
out<=~out;
temp<=0;
end
end
endmodule
3、RTL视图
4、仿真结果
实验名称:
实验七
实验目的:
设计M+N分频器(N=5;M=7)
实验时间:
地点:
学生姓名:
学号:
实验名称:
设计一个M+N分频器(N=5;M=7)
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
modulediv5_7(clk,out);
inputclk;
outputout;
regout;
reg[3:
0]cout1;
reg[3:
0]cout2;
always@(posedgeclk)
begin
if(cout1<4'd11)
begin
cout1<=cout1+1;
if(cout1==4'b0100)
out<=~out;
end
else
begin
cout1<=0;
out<=~out;
end
end
endmodule
3、RTL视图
4、仿真结果
实验名称:
实验八
实验目的:
设计一个占空比为50%的17分频器
实验时间:
地点:
学生姓名:
学号:
实验名称:
设计一个17分频器(占空比50%)
1、实验步骤
(1)创建工程
启动NewProjectWizard,创建一个工程。
在NewProjectWizard:
Family&DdviceSettings对话框中选择目标器件:
MAX7000S:
EPM7032SLC44—10。
当出现工程设置信息显示窗口NewProjectWizard:
Summary,单击Finish按钮,即完成了当前工程的创建。
(2)创建文件
选择菜单File—>New—>VerilogHDLFile,创建一个VerilogHDL文件,在VerilogHDL文件中编写能够完成实验功能的VerilogHDL代码。
(3)编译工程
选择菜单Processing—>StartCompilation,或者单击按钮
,即启动了完全编译。
编译完成后,会弹出有关的编译信息窗口。
(4)观察RTL视图
选择菜单Tools—>NetlistViewers—>RTLViewer即可生成RTL视图。
(5)仿真
1).创建VWF文件
选择菜单File—>New—>VectorWaveformFile,单击OK按钮即可出现波形编辑窗口。
2).设定“EndTime”
选择菜单EditFile—>EndTime,在弹出的对话框中将Time设置为20us。
3).在VWF文件中输入信号节点
选择菜单View—>UtilityWindows—>NodeFinder,在出现的对话框中将Filter框中设置为Pins:
all,再单击List按钮,即会出现本设计项目中的所有端口引脚列表,从端口列表中选择需要观察的并拖到波形编辑窗口中。
4).编辑输入信号波形
5).观察仿真结果
选择菜单Processing—>StartSimulation,或者单击按钮
,即启动仿真器,观察输出波形,以检查所设计电路的功能是否正确,若不正确可修改设计直至满足设计要求。
2、VerilogHDL代码
modulefenpin_17(clk_in,clk_17);
inputclk_in;
outputclk_17;
wire