可编程逻辑器件设计实验报告.docx
装 订 线可编程逻辑器件设计实验报告实验名称: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 endmodule3、 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 endmodule3、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; endendmodule3、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)beginq_n=q;if(!reset)q<=0;else if(!set)q<=a;elseq<=in;end3、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 endendmodule 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 endendmodule 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);endmodule3、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 endendmodule3、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)beginif(!reset)beginqout<=0;cout<=0;endelse if(set=0)beginqout<=data;cout<=0;endelse if(qout<9)beginqout<=qout+1;cout<=0;endelse beginqout<=0;cout<=1;endendendmodule3、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 endmodule3、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 endmodule3、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 endmodule3、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; endendmodule3、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 endmodule3、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 begincout1<=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 begintemp1<=0;out1<=out1; end endalways (negedge clk) begin if(temp2<4'd9) temp2<=temp2+1; else begintemp2<=0;out2<=out2; endend 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=abcin;assign cout=(a&b)|(b&cin)|(cin&a);endmodule3、软件测试代