资源描述
装 订 线
可编程逻辑器件设计实验报告
实验名称:Quartus II基础实验
实验目的:使用Quartus II设计并完成一个简单的逻辑电路
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:使用Quartus II设计并完成一个简单的逻辑电路
1、 实验步骤
(1) 创建工程
(2) 创建文件
(3) 编译工程
(4) 观察RTL视图
(5) 仿真
2、 VerilogHDL代码
采用原理图输入
3、 RTL视图
4、 仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:简单D触发器
1、实验步骤
(1) 创建工程
(2) 创建文件
(3) 编译工程
(4) 观察RTL视图
(5) 仿真
2、 VerilogHDL代码
module _DFF (clk,d,q);
input clk,d;
output q;
reg q;
always@ (posedge clk)
begin
q<=d;
end
endmodule
3、 RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:同步置数的D触发器
1、 实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、 VerilogHDL代码
module CFQ (clk,d,load,q);
input clk,d,load;
output q;
reg q;
always@(posedge clk)
begin
if(!load)
q<=1;
else
q<=d;
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:同步置数异步清零的D触发器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module _DFf (clk,d,load,rest,q);
input clk,d,load,rest;
output q;
reg q;
always@(posedge clk or negedge rest)
begin
if(!rest)
q<=0;
else if (!load)
q<=1;
else
q<=d;
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:带Q_n输出的D触发器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module d_q(in,clk,q,set,a,reset,q_n);
input clk,in,set,a,reset;
output reg q,q_n;
always@(posedge clk,negedge reset)
begin
q_n=~q;
if(!reset)
q<=0;
else if(!set)
q<=a;
else
q<=in;
end
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:4选1数据选择器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module mux4_1 (in0,in1,in2,in3,s0,s1,out);
input s0,s1;
input in0,in1,in2,in3;
output out;
reg out;
always@(in0,in1,in2,in3,s0,s1)
begin
case({s0,s1})
2'b00:out<=in0;
2'b01:out<=in1;
2'b10:out<=in2;
2'b11:out<=in3;
default:out<=1'bz;
endcase
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:6选1数据选择器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module mux6_1 (in0,in1,in2,in3,in4,in5,s0,s1,s2,out);
input s0,s1,s2;
input in0,in1,in2,in3,in4,in5;
output out;
reg out;
always@(in0,in1,in2,in3,in4,in5,s0,s1,s2)
begin
case({s0,s1,s2})
3'b000:out<=in0;
3'b001:out<=in1;
3'b010:out<=in2;
3'b011:out<=in3;
3'b100:out<=in4;
3'b101:out<=in5;
default:out<=1'bz;
endcase
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:38译码器(assign语句实现)
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module as_38(a,q);
input [2:0] a;
output [7:0] q;
parameter m=8'b00000001;
assign q=(m<<a);
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第二部分:VerilogHDL基础实验
实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:38译码器(always语句实现)
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module yima3_8(in0,in1,in2,out);
input in0,in1,in2;
output [7:0] out;
reg [7:0] out;
always@(in0,in1,in2,out)
begin
case({in2,in1,in0})
3'b000:out<=8'b00000001;
3'b001:out<=8'b00000010;
3'b010:out<=8'b00000100;
3'b011:out<=8'b00001000;
3'b100:out<=8'b00010000;
3'b101:out<=8'b00100001;
3'b110:out<=8'b01000001;
3'b111:out<=8'b10000001;
default:out<=2'bz;
endcase
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个模10计数器(异步清零,同步置数)
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module m10(clk,set,reset,qout,data,cout);
input clk,set,reset;
input [3:0] data;
output reg [3:0] qout;
output reg cout;
always@(posedge clk,negedge reset)
begin
if(!reset)
begin
qout<=0;
cout<=0;
end
else if(set==0)
begin
qout<=data;
cout<=0;
end
else if(qout<9)
begin
qout<=qout+1;
cout<=0;
end
else
begin
qout<=0;
cout<=1;
end
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个模60计数器(异步清零,同步置数)
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module m_60(clk,load,reset,a,cnt,cout);
input clk,load,reset;
input [5:0] a;
output cout;
output [5:0] cnt;
reg [5:0] cnt;
reg cout;
always@(posedge clk or negedge reset)
begin
if(!reset)
cnt<=6'b00_0000;
else if(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、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个BCD码计数器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module add_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视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个4bit加减计数器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module add_bcd (a,clk,en,load,reset,out,cout);
input [3:0] a;
input clk,en,load,reset;
output [3:0] out;
output cout;
reg [3:0] out;
reg cout;
always@( posedge clk or negedge reset)
begin
if (!reset)
out<=4'b0000;
else if(!load)
out<=a;
else if(!en)
out<=out+1;
else
out<=out-1;
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个2、4、8分频器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module div2_4_8(clk,clk_2,clk_4,clk_8);
input clk;
output clk_2,clk_4,clk_8;
reg clk_2,clk_4,clk_8;
always@(posedge clk)
begin
clk_2<=~clk_2;
end
always@(posedge clk_2)
begin
clk_4<=~clk_4;
end
always@(posedge clk_4)
begin
clk_8<=~clk_8;
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个2N分频器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module div_14(clk,out);
input clk;
output out;
reg out;
reg [2:0] temp;
always@(posedge clk)
begin
if(temp<3'd6)
temp<=temp+1'b1;
else
begin
out<=~out;
temp<=0;
end
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个M+N分频器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module div5_7 (clk,out);
input clk;
output out;
reg out;
reg [3:0] cout1;
reg [3:0] cout2;
always @(posedge clk)
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、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第三部分:VerilogHDL中级实验
实验目的:加深理解,熟练操作
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:设计一个17分频器
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module div_17(clk,out);
input clk;
output wire out;
reg out1,out2;
reg [4:0] temp1;
reg [4:0] temp2;
assign out=out1|out2;
always @(posedge clk )
begin
if(temp1<4'd9)
temp1<=temp1+1;
else
begin
temp1<=0;
out1<=~out1;
end
end
always @(negedge clk)
begin
if(temp2<4'd9)
temp2<=temp2+1;
else
begin
temp2<=0;
out2<=~out2;
end
end
endmodule
3、RTL视图
4、仿真结果
装 订 线
可编程逻辑器件设计实验报告
实验名称:第四部分:ModuleSim基础仿真实验
实验目的:编写一个测试文件
实验时间: 2015年 地点: 803实验室
学生姓名: 赵佳梦 学号: 2012117282
实验名称:对1位全加器的仿真
1、实验步骤
创建工程、创建文件、编译工程、观察RTL视图、仿真
2、VerilogHDL代码
module full_add(a,b,cin,sum,cout);
input a,b,cin;
output sum,cout;
assign sum=a^b^cin;
assign cout=(a&b)|(b&cin)|(cin&a);
endmodule
3、软件测试代
展开阅读全文