4线2线译码器.docx
7页4线2线优先编码器和十进制加减可逆计数器设计专业:自动化 学生:XXXX 学号:XXXXXXXX1 设计目标 A:掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;熟悉一种EDA软件使用与实验系统介绍 ;掌握Verilog HDL设计方法;设计一个4线2线优先编码器,其功能如下表所示: I3 I2 I1 I0 A1 A0 0 0 0 1 0 0 0 0 1 x 0 1 0 1 x x 1 0 1 x x x 1 1功能要求:① 满足以上功能表 ② 在实验板的发光二级管或编译显示电路,显示结果 B:用 verilog HDL语言设计一个模为 10的可逆计数器,能自动实现加减可逆计数,也能手动实现加/减计数 用实验板上的译码显示电路,显示结果2 实验装置586计算机,MAX+plusⅡ 10.2软件,专用编程电缆,EDA Pro2K数字实验装置等。
3 设计步骤和要求 ① 在MAX+plusⅡ 10.2软件中,输入设计的原理图② 对电路进行仿真分析;③ 选择器件,分配引脚,重新对设计项目进行编译和逻辑综合;④ 对EDA Pro2K数字实验装置中的FPGA器件进行在系统编程,并实际测试电路的逻辑功能;4 具体步骤4.1 建立 Quartus 工程; 1.打开 Quartus II 工作环境 2.点击菜单项 File->New Project Wizard 帮助新建工程 3.输入工程工作路径、工程文件名以及顶层实体名 4.添加设计文件 5.选择设计所用器件 6.设置EDA工具 7.查看新建工程总结 在完成新建后,Quartus II 界面中 Project Navigator 的 Hierarchy 标签栏中会出现用户正在设计的工程名以及所选用的器件型号4.2 使用 Verilog HDL 完成设计输入 A:4线2线代码module p_encoder(In,out_coding); input [3:0] In; output [1:0] out_coding; wire [3:0] In; reg [1:0] out_coding; always @(In) begin casez(In) 4'b1???:out_coding = 2'b11; 4'b01??:out_coding = 2'b10; 4'b001?:out_coding = 2'b01; 4'b0001:out_coding = 2'b00; default:out_coding = 2'b00; endcase end endmodule B:十进制加减可逆计数器代码:1) 顶层模块module cnt10_top(clk,crl,s,t,out);input crl,s,t; input clk; output [7:0] out; wire cp; wire [3:0] Q; wire [7:0] out; freqDiv U0(clk,cp); //to change the clock rate cnt10 U1(crl,s,t,cp,Q); SEG7_LUT U2(out,Q); //to output the resultEndmodule2) 十进制可逆计数模块module cnt10 (nclr,s,t,clk,Q);input clk, nclr,s,t; output [3:0] Q; reg [3:0] Q; reg flag; initial begin flag=1; end always @(posedge clk or negedge nclr) begin if (!nclr) Q <= 4'b0000; //clear else casez({s,t}) 2'b00: if (Q==9) begin Q <= 4'b1000; flag <= 0; end else if(Q==0) begin Q <= 4'b0001; flag <= 1; end else if(flag==1) Q<= Q + 1; else Q <= Q - 1; 2'b01: if (Q==9) Q <= 4'b0000; else Q <= Q + 1; 2'b1?: if (Q==0) Q <= 4'b1001; else Q <= Q - 1; endcase end endmodule3)分频模块module freqDiv(in_50MHz,out_1Hz); input in_50MHz; output out_1Hz; reg out_1Hz; reg [25:0]cnt; always@(posedge in_50MHz) begin cnt <= cnt + 1'B1; if(cnt < 26'd) out_1Hz <=0; else begin if(cnt >= 26'd) cnt <= 26'b0; else out_1Hz <=1; end end endmodule4)显示模块module SEG7_LUT(oSEG1,iDIG); input [3:0] iDIG; output [7:0] oSEG1; reg [7:0] oSEG; wire [7:0] oSEG1; always @(iDIG) begin case(iDIG) 4'h0: oSEG = 8'b; 4'h1: oSEG = 8'b; 4'h2: oSEG = 8'b; 4'h3: oSEG = 8'b; 4'h4: oSEG = 8'b; 4'h5: oSEG = 8'b; 4'h6: oSEG = 8'b; 4'h7: oSEG = 8'b; 4'h8: oSEG = 8'b; 4'h9: oSEG = 8'b; 4'ha: oSEG = 8'b; 4'hb: oSEG = 8'b; 4'hc: oSEG = 8'b; 4'hd: oSEG = 8'b; 4'he: oSEG = 8'b; 4'hf: oSEG = 8'b; endcase end assign oSEG1=~oSEG; endmodule4.3 电路编译4.4 电路仿真 选择仿真参数 保存波形文件 Q_DECODE_38.vwf 点击菜单项Processing->Generate Functional Simulation Netlist,产生功能仿真网表 点击菜单项Processing->Start Simulation 启动功能仿真 仿真波形如下: CLR=0时,清零: CLR=1,S=0,T=0,自动计数(0-9,9-0,……):CLR=1,S=0,T=1,手动计数(0-9,0-9,……):CLR=1,S=1,T=0,手动计数(9-0,9-0,……):CLR=1,S=1,T=1,手动计数(9-0,9-0,……):4.5 器件的编程下载 下载程序:在Programmer界面 中 ,将.sof 文件列表中Program/Configure 属性勾上 再点击Start 按钮,开始下载程序。
完成后,下载程序显示100% 最终调试,在 DE0 实验板上,扳动 SW2,SW1 和 SW0 开关,可以看到译码之后的 LEDR7-LEDR0 红色 LED 发光输出例如:扳动 SW1 和SW0时仅有 LEDR3 亮5 实验总结本次实验是对编程语言Verilog HDL的学习和巩固,通过不用做电路图而直接找各个工作点以及门电路之间的关系写出语言描述,再根据语言描述仿真看结果是否符合预期结果,这在一定的程度上节省了画图所浪费的时间,效率较高,另外这是一门重要且比较基础的语言,通过这次实践让自己更加熟悉同时,学会了对Quartus这个软件的基本操作另外,本次实验应用层次化的设计输入方法:“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次成功率 在能力与知识结构方面,要求学生应具有扎实的专业和日语语言基础,熟练掌握日语听、说、读、写、译的基本技能;了解日本社会及日本文化等方面的基本知识,熟悉日本国情,具有一定的日本人文知识及运用这些知识与日本人进行交流的能力。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


