第四阶段实验 ISP器件的设计与应用 一、实验目的 二、实验内容与要求 三、ISP器件的开发流程 四、EDA Pro2K实验系统介绍 五、设计举例
ISP器件的设计与应用 一、实验目的 掌握可编程逻辑器件的应用开发技术 ——设计输入、编译、仿真和器件编程 ; 熟悉一种EDA软件使用 ; 初步掌握Verilog HDL语言的编程方法; 掌握层次化的设计方法。
ISP器件的设计与应用 二、实验内容与要求(共4周) 练习1 —— 十进制计数器(举例) 练习2 —— 大小比较器和60进制计数器 用原理图构成一个有清零和使能功能的十进制计递增数器(建议用74161宏模块) 编译和仿真 分配引脚并再次进行编译 下载 练习2 —— 大小比较器和60进制计数器 输入大小比较器的原理图 (见实验四十六图10.46.1) 编译和仿真 自己完成60进制计数器设计与仿真
ISP器件的设计与应用 二、实验内容与要求 练习3 ——篮球24秒定时器的设计(举例) 练习4——数字钟电路的设计(自己完成) 用Verilog HDL描述24秒定时器的功能 编译和仿真 引脚分配并再次进行编译 下载 练习4——数字钟电路的设计(自己完成)
数字钟电路设计(实验五十一) 基本要求: (见教材289页,要求自己完成) 选做内容: 具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 具有校时功能,能够对“分”和“小时”进行调整。 具有整点报时功能。在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1000Hz音响结束时刻为整点。 外电路提供3路时钟信号(2048Hz/1024Hz/1Hz)和译码显示电路。 选做内容: 小时改为12进制,即由1……12。 闹钟
三、ISP器件的开发流程
四、EDA Pro2K实验系统介绍 可用资源 8个数码显示(含8421译码) 8个LED发光管显示 1个带驱动的小型扬声器(蜂鸣器) 可显示0~9,A~F 8个LED发光管显示 1个带驱动的小型扬声器(蜂鸣器) 8个按键 4组时钟源
可用资源使用方法——引脚分配(锁定) 资源名称 引脚名称 引脚号 功能说明 CLK0 1/2/8 CLK1 CLK2 CLK3 3 5 6 1/4/16/64/1024/4096/16384/65536/12M/24M/48M 1/2/8 CLK1 CLK2 CLK3 3 5 6 7 1024/4096/32768 12M/24M/48M D8/D7/D6/D5 81/80/79/78 红/黄/绿/绿 D4/D3/D2/D1 73/72/71/70 绿/绿/黄/红 LED 蜂鸣器 时钟 SPK 83 资源 引脚名称 引脚号 模式二 K8/K7/K6/K5 19/18/17/16 2ms脉冲 K4/K3/K2/K1 11/10/9/8 按键 模式一 模式三 琴键电平 乒乓电平
可用资源使用方法——引脚分配(锁定) 资源 引脚名称 引脚号 38/39/47/48 30/35/36/37 65/66/67/68 SM8_ B0/B1/B2/B3 65/66/67/68 60/61/62/64 53/54/58/59 49/50/51/52 25/27/28/29 21/22/23/24 数码管8 数码管7 数码管6 数码管5 数码管4 数码管3 数码管2 数码管1 SM7_ B0/B1/B2/B3 SM6_ B0/B1/B2/B3 SM5_ B0/B1/B2/B3 SM4_ B0/B1/B2/B3 SM3_ B0/B1/B2/B3 SM2_ B0/B1/B2/B3 SM1_ B0/B1/B2/B3
五、设计举例 1. 十进制计数器的原理图设计 A. 输入原理图文件: 进入MAX+PLUSII软件,点击 ,新建一个原理图文件(选Graphic Editor file),按下页图输入原理图; 双击空白处,输入74161,回车,点击左键,放元件; 重复上述操作,放元件与非门(NAND2)、参考地(GND)、输入/输出引脚(INPUT/OUTPUT); 双击引脚名称处,更改引脚名称; 选择所用器件:Assign/Device-选FLEX10K系列EPF10K10LC84-4; 存盘。注意:必须存在某一个文件夹中。
1. 十进制计数器的原理图设计
1. 十进制计数器的原理图设计 B. 编译原理图文件: 将当前的原理图文件设置成为当前的工程:选File/Project/Set Project to Current File(或按Ctrl+Shift+J); 编译当前工程中的所有文件:MAX+plus II/compiler; 点击Start按钮,开始编译。
1. 十进制计数器的原理图设计 C. 对设计进行仿真: 新建一个波形文件:点击 ,选择波形编辑器; 点击OK按钮,进入波形编辑器;
1. 十进制计数器的原理图设计 C. 对设计进行仿真: 从网表中加入输入、输出信号节点到当前的文件:选Node/Enter Nodes from SNF…; (1)点击List,列出所有信号 (2)点击=>,选出需要的输入、输出信号 (3)点击OK,确定
1. 十进制计数器的原理图设计 C. 对设计进行仿真: 选择栅格尺寸:选Options/Grid size…; 设定仿真时间长度:选File/End time…(此处设定为30us); 利用左边的快捷图标,编辑输入(节点)信号的波形; 将选定信号的值设为0 将选定信号的值设为1 任意值x 高阻值z 对选中的信号取反 设定计数器的时钟信号clk 设定总线信号
1. 十进制计数器的原理图设计 C. 对设计进行仿真: 可参考下图设定输入信号: 选用默认的文件名存盘; 仿真: 选MAX+plus II/Simulator,在弹出的对话框中点击Start开始仿真,再点击Open SCF,可看到仿真波形。
1. 十进制计数器的原理图设计 C. 对设计进行仿真: 按住shift键,选中QD、QC、QB、QA4个信号,然后点击右键,选Enter Group…,输入总线名称Q[3..0],可以看到以总线形式显示的波形。
1. 十进制计数器的原理图设计 D. 分配输入、输出信号在器件上的引脚号: 选MAX+plus II/ Floorplan Editor,进入版图编辑环境; 选Layout/Device View,得到芯片的引脚图;
D. 分配输入、输出信号在器件上的引脚号: 选Layout/Current Assignments Floorplan,以当前的引脚分配作为标准 ; 根据实验板外接资源进行引脚分配,方法是:选中右上方待分配的引脚,按住左键并拖放到相应的引脚上去。按Delete键,可删除错误的分配。
D. 分配输入、输出信号在器件上的引脚号: E. 对器件进行编程: 引脚分配的结果:CLK ->3, CLRN -> 8, EN -> 9, QA->21, QB->22, QC->23, QD->24 ; 引脚分配完成后,重新编译一次,则分配的引脚生效 (选MAX+plus II/Compiler)。 E. 对器件进行编程: 选MAX+plus II/Programmer,弹出编程对话框; 检查编程文件名(t161.sof)和器件(EPF10K10LC84-4)是否正确; 若正确,接上硬件后,点击Configure按钮,直接对器件编程。 若错误,选File/Select Programming File…,重新选编程文件。
2. 十进制计数器的Verilog HDL设计 module CNT10 (nclr,clk,Q) input clk, nclr; /* 带有异步清零功能的十进制计数器 */ module CNT10 (nclr,clk,Q) input clk, nclr; output [3:0] Q; reg [3:0] Q; always @(posedge clk or negedge nclr) begin if (!nclr) Q <= 4‘b000; //clear else if (Q==9) Q <= 4‘b000; else Q <= Q + 1; end endmodule
3. 篮球24秒定时器的Verilog HDL设计 设计要求: Verilog HDL程序参考下页: (1)具有显示24S(24秒)计时功能; (2)设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能; (3)计时器为24S递减计时器,其计时间隔为1S; (4)计时器递减计时到零时,数码显示器不能灭灯,同时发出光电报警信号。 Verilog HDL程序参考下页:
module basketball30 (TimerH, TimerL, alarm, clk, nclr, nload, nstop); input clk, nclr, nload, nstop; wire clk, nclr, nload, nstop; output [3:0] TimerH, TimerL; reg [3:0] TimerH, TimerL; output alarm; always @(posedge clk or negedge nclr or negedge nstop or negedge nload) begin if (!nclr) {TimerH, TimerL} <= 8'h00; //clear else if (!nload) {TimerH, TimerL} <= 8'h24; //Load number else if (!nstop) {TimerH, TimerL} <= {TimerH, TimerL}; //stop counter else if ({TimerH, TimerL} == 8'h00) //if Timer=0, hold 0 no_change begin {TimerH, TimerL} <= {TimerH, TimerL}; end else if (TimerL==0) begin TimerH <= TimerH - 1; TimerL <= 9; end else begin TimerH <= TimerH; TimerL <= TimerL - 1;end end assign alarm = ({TimerH, TimerL} = = 8'h00) & (nclr = = 1'b1)& (nload = = 1'b1); //alarm endmodule
在MAX+plus II中实现篮球24秒注意事项: (1)输入Verilog HDL源程序时,使用文本编辑器,方法如下: 进入MAX+PLUSII软件,点击 ,新建一个文本文件(选Text Editor file); (2)存盘时,选用.v作为Verilog HDL的扩展名,且文件名必须与模块名相同; (3)编译、仿真、引脚分配与原理图输入时相同。
2006-2007学年第一学期考试安排 考试时间:第21周星期天(1月21日)(晚上):7:00-8:30 专 业 班 级 考试课程 教室 编号 电子 0405 电子测试与实验 西十二 S109 0406 S110 0409 N109 0410 N110
考试内容 开卷考试 1.仪器使用 (特别是示波器、电源的使用) 2.实验原理 (模拟电路部分和数字电路部分) 模拟电路部分:放大电路 数字电路部分: 3.设计题 (ISP、MAX+Plus II 使用) 已知电路的输入、输出波形,用硬件描述语言程序实现(如Verilog程序、VHDL程序、ABEL程序 )或图形方式设计结果。 MAX+Plus II 使用
预祝大家 取得好的成绩!