280 likes | 480 Views
第四阶段实验 ISP 器件的设计与应用. 一、实验目的. 二、实验内容与要求. 三、 ISP器件的开发流程. 四、 EDA Pro2K 实验系统介绍. 五、设计举例. 一、实验目的. ISP器件的设计与应用. 掌握可编程逻辑器件的应用开发技术 —— 设计输入、编译、仿真和器件编程 ; 熟悉一种 EDA 软件使用 ; 初步掌握 Verilog HDL 语言的编程方法; 掌握层次化的设计方法。. 二、实验内容与要求(共 4 周). ISP器件的设计与应用. 练习 1 —— 十进制计数器(举例)
E N D
第四阶段实验ISP器件的设计与应用 一、实验目的 二、实验内容与要求 三、ISP器件的开发流程 四、EDA Pro2K实验系统介绍 五、设计举例
一、实验目的 ISP器件的设计与应用 • 掌握可编程逻辑器件的应用开发技术 • ——设计输入、编译、仿真和器件编程 ; • 熟悉一种EDA软件使用 ; • 初步掌握Verilog HDL语言的编程方法; • 掌握层次化的设计方法。
二、实验内容与要求(共4周) ISP器件的设计与应用 • 练习1 ——十进制计数器(举例) • 用原理图构成一个有清零和使能功能的十进制计递增数器(建议用74161宏模块) • 编译和仿真 • 分配引脚并再次进行编译 • 下载 • 练习2 ——大小比较器和60进制计数器 • 输入大小比较器的原理图 (见实验四十六图10.46.1) • 编译和仿真 • 自己完成60进制计数器设计与仿真
ISP器件的设计与应用 二、实验内容与要求 • 练习3 ——篮球24秒定时器的设计(举例) • 实验要求参见 p241实验三十三(图8.33.1) • 用Verilog HDL描述24秒定时器的功能 • 编译和仿真 • 引脚分配并再次进行编译 • 下载 • 练习4——数字钟电路的设计(自己完成)
数字钟电路设计(实验五十一) • 基本要求:(见教材289页,要求自己完成) • 具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 • 具有校时功能,能够对“分”和“小时”进行调整。 • 具有整点报时功能。在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1000Hz音响结束时刻为整点。 • 外电路提供3路时钟信号(2048Hz/1024Hz/1Hz)和译码显示电路。 • 选做内容: • 小时改为12进制,即由1……12。 • 闹钟
四、EDA Pro2K实验系统介绍 • 可用资源 • 8个数码显示(含8421译码) • 可显示0~9,A~F • 8个LED发光管显示 • 1个带驱动的小型扬声器(蜂鸣器) • 8个按键 • 4组时钟源
资源 资源名称 引脚名称 引脚名称 引脚号 引脚号 功能说明 模式一 模式二 模式三 1/4/16/64/1024/4096/16384/65536/12M/24M/48M CLK0 19/18/17/16 3 K8/K7/K6/K5 乒乓电平 乒乓电平 琴键电平 按键 CLK1 11/10/9/8 K4/K3/K2/K1 乒乓电平 2ms脉冲 琴键电平 5 1/2/8 时钟 CLK2 6 1024/4096/32768 CLK3 7 12M/24M/48M D8/D7/D6/D5 81/80/79/78 红/黄/绿/绿 LED D4/D3/D2/D1 73/72/71/70 绿/绿/黄/红 蜂鸣器 SPK 83 可用资源使用方法——引脚分配(锁定)
资源 引脚名称 引脚号 数码管8 SM8_ B0/B1/B2/B3 65/66/67/68 数码管7 SM7_ B0/B1/B2/B3 60/61/62/64 数码管6 SM6_ B0/B1/B2/B3 53/54/58/59 数码管5 SM5_ B0/B1/B2/B3 49/50/51/52 数码管4 SM4_ B0/B1/B2/B3 38/39/47/48 数码管3 SM3_ B0/B1/B2/B3 30/35/36/37 数码管2 SM2_ B0/B1/B2/B3 25/27/28/29 数码管1 SM1_ B0/B1/B2/B3 21/22/23/24 可用资源使用方法——引脚分配(锁定)
五、设计举例 • 进入MAX+PLUSII软件,点击 ,新建一个原理图文件(选Graphic Editor file),按下页图输入原理图; 1. 十进制计数器的原理图设计 A. 输入原理图文件: • 双击空白处,输入74161,回车,点击左键,放元件; • 重复上述操作,放元件与非门(NAND2)、参考地(GND)、输入/输出引脚(INPUT/OUTPUT); • 双击引脚名称处,更改引脚名称; • 选择所用器件:Assign/Device-选FLEX10K系列EPF10K10LC84-4; • 存盘。注意:必须存在某一个文件夹中。
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. 分配输入、输出信号在器件上的引脚号: • 引脚分配的结果: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; output [3:0] Q; reg [3:0] Q; always@(posedge clk ornegedge nclr) begin if (!nclr) Q <= 4‘b000; //clear elseif (Q==9) Q <= 4‘b000; else Q <= Q + 1; end endmodule
3. 篮球24秒定时器的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+PLUSII软件,点击 ,新建一个文本文件(选Text Editor file); • 在MAX+plus II中实现篮球24秒注意事项: (1)输入Verilog HDL源程序时,使用文本编辑器,方法如下: (2)存盘时,选用.v作为Verilog HDL的扩展名,且文件名必须与模块名相同; (3)编译、仿真、引脚分配与原理图输入时相同。
2006-2007学年第一学期考试安排 考试时间:第21周星期天(1月21日)(晚上):7:00-8:30
考试内容 开卷考试 • 1.仪器使用 (特别是示波器、电源的使用) • 2.实验原理 (模拟电路部分和数字电路部分) • 模拟电路部分:放大电路 • 数字电路部分: • 3.设计题 (ISP、MAX+Plus II 使用) • 已知电路的输入、输出波形,用硬件描述语言程序实现(如Verilog程序、VHDL程序、ABEL程序 )或图形方式设计结果。 • MAX+Plus II 使用
预祝大家 取得好的成绩!