文档库 最新最全的文档下载
当前位置:文档库 › 华南理工大学数字系统设计实验3报告

华南理工大学数字系统设计实验3报告

华南理工大学数字系统设计实验3报告
华南理工大学数字系统设计实验3报告

实验三基于状态机的交通灯控制

地点:31号楼312房;实验台号:12

实验日期与时间:2017年12月08日评分:

预习检查纪录:批改教师:

报告内容:

一、实验要求

1、开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。

2、交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。

3、为了方便观察,本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。编程之前要求同学们先画好ASM图。

4、1Hz分频模块请采用第二次实验中的内容,7段码显示模块请参考书本相关内容。

5、第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。和其它VHDL编写的模块可以混搭在一个电路图中使用。EP2C8Q208C8的SCTP,SHCP,SER_DATA数码管信号线通过两块74HC595集成块,再驱动数码管。

6、芯片型号:cyclone:EP2C8Q208C8,开发板所有资料都在“新板”附件中,其中管脚配置在实验要求中是不对的,以“新板”附件中为准。

二、实验内容

1设计要求

开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。

2设计思路

(1)数码管驱动

第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:

方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。

方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。和其它VHDL 编写的模块可以混搭在一个电路图中使用。EP2C8Q208C8的SCTP,SHCP,SER_DATA 数码管信号线通过两块74HC595集成块,再驱动数码管。

(2)交通灯流程设计

我根据实验要求,将实验设计分为6部分:分频器模块、复位部分、红灯部分、黄灯(红转黄时)部分、绿灯部分、扩位模块。其中复位部分包括1个状态:reset0,红灯部分包括9个状态:r1到r9,绿灯部分包括6个状态:r1到r6,黄灯部分包括3个状态:y1到y3。其中,对脉冲信号进行2的n次方分之一的分频,实现分频器分频。扩位模块采用补0操作实现将4位二进制数转为16位二进制数。

3ASM 图

设计17个状态,包括1个复位状态,9个红灯状态,6个绿灯状态,交通灯控制的ASM 图如图1所示。

图1交通灯控制的ASM 图

4VHDL 描述

(1)分频器描述

-----------------------------------------------------------VHDL experience2--FENPINQI

--DIV 50MHz into 1Hz

reset0

g1

r1y1

r9

r8

r7

r6

r5r4

r3

r2g2

g3

g4

g6

g5

y3

y2

红灯

红灯

绿灯

--Quartus II version:Quartus II9.0

--Chen Yirong

--2017.11.24

---------------------------------------------------------

--include library

LIBRARY IEEE;--IEEE Library

--include package

USE IEEE.std_logic_1164.ALL;--use package

USE IEEE.std_logic_unsigned.all;

---------------------------------------------------------

--introduce entity

ENTITY clkdiv_15dianzhuo_12is--shiti

--change n to change frequence

GENERIC(n:integer:=50000000);--leishucanshu

PORT(clk:IN std_logic;

Y:OUT std_logic);

END ENTITY;

---------------------------------------------------------

--describe architecture

ARCHITECTURE behav OF clkdiv_15dianzhuo_12IS--structure SIGNAL count:integer RANGE n-1DOWNTO0:=n-1;--COUNTER BEGIN

PROCESS(clk)

BEGIN

IF(rising_edge(clk))then

count<=count-1;--dijian

if(count>=n/2)then

Y<='0';--fenpin

else

Y<='1';

end if;

if(count<=0)then

count<=n-1;

end if;

END IF;

END PROCESS;

END behav;

---------------------------------------------------------

(2)交通灯控制描述

---------------------------------------------------------

--VHDL experience3

--traffic_light_machinestate

--san jin cheng zhuang tai ji

--Quartus II version:Quartus II9.0

--Chen Yirong

--2017.12.08

---------------------------------------------------------

--include library

LIBRARY IEEE;--IEEE Library --include package

USE IEEE.std_logic_1164.ALL;--use package USE IEEE.std_logic_unsigned.all;

---------------------------------------------------------

--introduce entity

ENTITY traffic_light_machinestate is--shiti PORT(clk:IN std_logic;--clock

rst_n:IN std_logic;--reset,lowlevel valid

red_light:OUT std_logic;--low level valid

green_light:OUT std_logic;--low level valid

yellow_light:OUT std_logic;--low level valid

holdtime:OUT integer range0TO9);--show time

END ENTITY;

---------------------------------------------------------

--describe architecture

ARCHITECTURE Behav OF traffic_light_machinestate IS--jiegouti

--describe all state

TYPE state_type IS(reset0,r1,r2,r3,r4,r5,r6,r7,r8,r9,g1,g2,g3,g4,g5,g6,y1,y2,y3); SIGNAL present_state,next_state:state_type;

--shuang jin cheng zhuang tai ji

BEGIN

---------------------------------------------------------

--seq process:create state

seq:PROCESS(clk,rst_n)

BEGIN

IF(rst_n='0')THEN--fu wei shi hong deng liang

present_state<=reset0;

ELSIF(rising_edge(clk))THEN

present_state<=next_state;

END IF;

END PROCESS;

---------------------------------------------------------

--com process:create next state and output logic

com:PROCESS(next_state)

BEGIN

red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=0;

CASE present_state IS

WHEN reset0=>--fu wei state

green_light<='1';

yellow_light<='1';

holdtime<=0;

next_state<=r1;

WHEN r1=>--red light rest time=9 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=9;

next_state<=r2;

WHEN r2=>--red light rest time=8 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=8;

next_state<=r3;

WHEN r3=>--red light rest time=7 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=7;

next_state<=r4;

WHEN r4=>--red light rest time=6 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=6;

next_state<=r5;

WHEN r5=>--red light rest time=5

green_light<='1';

yellow_light<='1';

holdtime<=5;

next_state<=r6;

WHEN r6=>--red light rest time=4 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=4;

next_state<=r7;

WHEN r7=>--red light rest time=3 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=3;

next_state<=r8;

WHEN r8=>--red light rest time=2 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=2;

next_state<=r9;

WHEN r9=>--red light rest time=1 red_light<='0';

green_light<='1';

yellow_light<='1';

holdtime<=1;

next_state<=g1;

WHEN g1=>--green light rest time=6

green_light<='0';

yellow_light<='1';

holdtime<=6;

next_state<=g2;

WHEN g2=>--green light rest time=5 red_light<='1';

green_light<='0';

yellow_light<='1';

holdtime<=5;

next_state<=g3;

WHEN g3=>--green light rest time=4 red_light<='1';

green_light<='0';

yellow_light<='1';

holdtime<=4;

next_state<=g4;

WHEN g4=>--green light rest time=3 red_light<='1';

green_light<='0';

yellow_light<='1';

holdtime<=3;

next_state<=g5;

WHEN g5=>--green light rest time=2 red_light<='1';

green_light<='0';

yellow_light<='1';

holdtime<=2;

next_state<=g6;

WHEN g6=>--green light rest time=1

green_light<='0';

yellow_light<='1';

holdtime<=1;

next_state<=y1;

WHEN y1=>--yellow light rest time=3

red_light<='1';

green_light<='1';

yellow_light<='0';

holdtime<=3;

next_state<=y2;

WHEN y2=>--yellow light rest time=2

red_light<='1';

green_light<='1';

yellow_light<='0';

holdtime<=2;

next_state<=y3;

WHEN y3=>--yellow light rest time=1

red_light<='1';

green_light<='1';

yellow_light<='0';

holdtime<=1;

next_state<=r1;

END CASE;

END PROCESS;

END Behav;

--------------------------------------------------------------(3)将四位二进制数转为16位二进制数描述---------------------------------------------------------

--VHDL experience3

--add_bit

--san jin cheng zhuang tai ji

--Quartus II version:Quartus II9.0

--Chen Yirong

--2017.12.08

---------------------------------------------------------

--include library

LIBRARY IEEE;--IEEE Library

--include package

USE IEEE.std_logic_1164.ALL;--use package

USE IEEE.std_logic_unsigned.all;

---------------------------------------------------------

--introduce entity

ENTITY add_bit is--shiti

PORT(clk:IN std_logic;

input4bit:IN std_logic_vector(3DOWNTO0);

output16bit:OUT std_logic_vector(15DOWNTO0)

);

END ENTITY;

---------------------------------------------------------

--describe architecture

ARCHITECTURE behav OF add_bit IS

BEGIN

---------------------------------------------------------

output16bit<="ZZZZZZZZZZZZZZZZ";

PROCESS(clk,input4bit)

BEGIN

IF(rising_edge(clk))THEN

output16bit<="000000000000"&input4bit;

END IF;

END PROCESS;

END behav;

---------------------------------------------------------

三、实验过程记录(流程图或者实验逻辑思路过程)1仿真实验

整体电路图如图2所示。

图2交通灯控制整体电路图编译后,可以查看交通灯控制的整体RTL图,见。

图3交通灯控制电路的整体RTL图1秒计数器的RTL图如图4所示。

图41秒计数器的RTL图交通灯状态机的RTL图如图5所示。

图5交通灯状态机的RTL图4位转16位扩位模块的RTL图如图6所示。

图64位转16位扩位模块RTL图

交通灯控制的符号化状态机的状态转换图如图7所示。

图7符号化状态机的状态转换图

将1秒用两个时钟周期表示,进行时序波形仿真,仿真结果见图8。

图8时序仿真波形

由图8可以知道,所设计的电路实现了如下功能:

交通灯的工作过程依次是红→绿→黄→红。红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s。其中低电平代表某一灯处于亮的状态。

2下载验证

首先,对电路模块分配引脚,见图9所示。

图9交通灯控制电路引脚分配

然后将工程下载至开发板,可以观察到开发板上代表红、绿、黄的三个Led灯按着9s、6s、3s循环显示。显示时间倒计时在数码管上显示。其中LED0代表红灯、LED1代表绿灯,LED2代表黄灯。

(a)红灯9秒(b)红灯8秒(c)红灯7秒

(d)红灯6秒(e)红灯5秒(f)红灯4秒

(g)红灯3秒(h)红灯2秒(i)红灯1秒

(j)绿灯6秒(k)绿灯5秒(l)绿灯4秒

(m)绿灯3秒(n)绿灯2秒(o)绿灯1秒

(p)黄灯3秒(q)黄灯2秒

(r)黄灯1秒

图10交通灯控制实验结果

(实验报告作品相片粘贴页)

(工程软件比如电路图截图、仿真结果或者实验平台运行效果照片)

图11交通灯控制整体电路图

图12交通灯控制电路的整体RTL图

图131秒计数器的RTL图

图14交通灯状态机的RTL图

图15符号化状态机

图16时序仿真波形

图174位转16位扩位模块RTL图

(s)红灯9秒(t)红灯8秒(u)红灯7秒

(v)红灯6秒(w)红灯5秒(x)红灯4秒

(y)红灯3秒(z)红灯2秒(aa)红灯1秒

(ab)绿灯6秒(ac)绿灯5秒(ad)绿灯4秒

(ae)绿灯3秒(af)绿灯2秒(ag)绿灯1秒

(ah)黄灯3秒(ai)黄灯2秒

(aj)黄灯1秒

图18交通灯控制实验结果

数字系统设计试卷2012A卷

中国矿业大学2012~2013学年第一学期 《数字系统设计基础》试卷(A)卷 考试时间:100 分钟考试方式:闭卷 学院_________班级_____________姓名___________学号____________ 一、选择题(20分,每题2分) 1.不完整的IF语句,其综合结果可实现:_________ A. 三态控制电路 B. 条件相或的逻辑电路 C. 双向控制电路 D. 时序逻辑电路 2.关于进程语句说法错误的是_________ A. PROCESS为一无限循环语句(执行状态、等待状态) B. PROCESS中的顺序语句具有明显的顺序/并行运行双重性 C. 进程必须由敏感信号的变化来启动 D. 变量是多个进程间的通信线 3、对于VHDL以下几种说法错误的是___________ A. VHDL程序中的实体部分是对元件和外部电路之间的接口进行的描述,可以看成是定义 元件的引脚 B. 一个完整的VHDL程序总是由库说明部分、实体和结构体等三部分构成 C. VHDL程序中是区分大小写的 D.结构体描述元件内部结构和逻辑功能 4.一个设计实体(电路模块)包括实体与结构体两部分,实体描述___________。 A. 实体与结构体之间的连接关系; B. 器件的内部功能; C. 实体使用的库文件; D. 器件外部可见特性如端口的数目、方向等 5. 组合逻辑电路中的毛刺信号是由于______引起的。 A. 电路中存在延迟 B.电路不是最简 C. 电路有多个输出 D.电路中使用不同的门电路 6. 下列关于临界路径说法正确的是___________ A. 临界路径与系统的工作速度无关 B. 临界路径减小有助于缩小电路规模 C. 临界路径减小有助于降低功耗 D. 临界路径是从系统输入到输出的各条路径中信号通过时间最长的那条路径 7. 关于FPGA和CPLD的区别说法正确的是___________ A. CPLD 更适合完成各种算法和组合逻辑,FPGA 更适合于完成时序逻辑

数字系统设计技术实验指导书

Experiment 2 Designing Number Comparer 实验目的: 熟悉QuartusII 的开发环境 熟练掌握编程开发流程 学习VHDL 的基本语法 学习VHDL 编程设计 实验内容:数值比较器设计 实验要求:熟练掌握QuartusII 开发环境下对可编程逻辑器件进行程序化设计的整套流程 设计输入使用插入模板 (Insert Template ) 在QuartusII 开发环境下对设计程序进行时序仿真 将生成的配置文件下载到实验板,进行最终的实物测试验证 实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为: 比较器特性表 比较器电路示意图 实验报告内容要求: (1) 实验目的; (2) 实验内容; (3) 实验要求; (4) 实验原理; (5) 程序编写; (6) 程序编译(首先选择器件具体型号); (7) 功能仿真和芯片时序仿真; (8) 芯片引脚设定; (9) 适配下载结果及结论。 Number Comparer A(3..0) B(3..0) In_s In_l In_e Yl Ye Ys Y

Experiment 3 Designing 8 to1-Multiplxer 实验目的:熟悉QuartusII的开发环境 熟练掌握编程开发流程 学习VHDL的基本语法 学习VHDL编程设计 实验内容:八选一数据选择器设计。 实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板(Insert Template) 在QuartusII开发环境下对设计程序进行时序仿真 将生成的配置文件下载到实验板,进行最终的实物测试验证 实验原理: 电路功能表及其电路外部符号如下: 电路功能表 实验报告内容要求: (1)实验目的; (2)实验内容; (3)实验要求; (4)实验原理; (5)程序编写; (6)程序编译(首先选择器件具体型号); (7)功能仿真和芯片时序仿真; (8)芯片引脚设定; (9)适配下载结果及结论。

verilog数字系统设计教程习题答案

verilog 数字系统设计教程习题答案第二章 HDL 既是一种行为描述语言,也是一种结构描述语言。如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互联的结构模块。这意味着利用Verilog 语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。 2.模块的基本结构由关键词module和endmodule构成。 3.一个复杂电路系统的完整Verilog HDL 模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。 HDL和VHDL乍为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。 5.不是

6.将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 7.综合工具可以把HDL变成门级网表。这方面Synopsys工具占有较大的优势,它的Design Compile 是作为一个综合的工业标准,它还有另外一个产品叫Behavior Compiler ,可以提供更高级的综合。 另外最近美国又出了一个软件叫Ambit ,据说比Synopsys 的软件更有效,可以综合50万门的电路,速度更快。今年初Ambit 被Cadence 公司收购,为此Cade nee放弃了它原来的综合软件Syn ergy。随着FPGA 设计的规模越来越大,各EDA公司又开发了用于FPGA设计的综合软件,比较有名的有:Sy nopsys 的FPGAExpress,Cade nee 的Syn plity ,Mentor的Leonardo,这三家的FPGA综合软件占了市场的绝大部分。 8.整个综合过程就是将设计者在EDA平台上编辑输入的HDL文本、原理图或状态图形描述,依据给定的硬件结构组件和约束控制条件 进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。用于适配,适配将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC Jam格式的 文件 9.在FPGA设计中,仿真一般分为功能仿真(前仿真)和时序仿真(后仿真)。功能仿真又叫逻辑仿真,是指在不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证;而时序仿真是在布局布线后进行,它与

数字钟设计报告——数字电路实验报告

. 数字钟设计实验报告 专业:通信工程 :王婧 班级:111041B 学号:111041226 .

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生器、“时、 3

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

《verilog_数字系统设计课程》(第二版)思考题答案

Verilog数字系统设计教程思考题答案 绪论 1.什么是信号处理电路?它通常由哪两大部分组成? 信号处理电路是进行一些复杂的数字运算和数据处理,并且又有实时响应要求的电路。它通常有高速数据通道接口和高速算法电路两大部分组成。 2.为什么要设计专用的信号处理电路? 因为有的数字信号处理对时间的要求非常苛刻,以至于用高速的通用处理器也无法在规定的时间内完成必要的运算。通用微处理器芯片是为一般目的而设计的,运算的步骤必须通过程序编译后生成的机器码指令加载到存储器中,然后在微处理器芯片控制下,按时钟的节拍,逐条取出指令分析指令和执行指令,直到程序的结束。微处理器芯片中的内部总线和运算部件也是为通用目的而设计,即使是专为信号处理而设计的通用微处理器,因为它的通用性也不可能为某一特殊的算法来设计一系列的专用的运算电路而且其内部总线的宽度也不能随便的改变,只有通过改变程序,才能实现这个特殊的算法,因而其算法速度也受到限制所以要设计专用的信号处理电路。 3.什么是实时处理系统? 实时处理系统是具有实时响应的处理系统。 4.为什么要用硬件描述语言来设计复杂的算法逻辑电路? 因为现代复杂数字逻辑系统的设计都是借助于EDA工具完成的,无论电路系统的仿真和综合都需要掌握硬件描述语言。 5.能不能完全用C语言来代替硬件描述语言进行算法逻辑电路的设计? 不能,因为基础算法的描述和验证通常用C语言来做。如果要设计一个专用的电路来进行这种对速度有要求的实时数据处理,除了以上C语言外,还须编写硬件描述语言程序进行仿真以便从电路结构上保证算法能在规定的时间内完成,并能通过与前端和后端的设备接口正确无误地交换数据。 6.为什么在算法逻辑电路的设计中需要用C语言和硬件描述语言配合使用来提 高设计效率? 首先C语言很灵活,查错功能强,还可以通过PLI编写自己的系统任务,并直接与硬件仿真器结合使用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比Verilog HDL更完整,此外,C语言有可靠地编译环境,语法完备,缺陷缺少,应用于许多的领域。比较起来,Verilog语言只是针对硬件描述的,在别处使用并不方便。而用Verilog的仿真,综合,查错等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以只有在C语言的配合使用下,Verilog才能更好地发挥作用。C 语言与Verilog HDL语言相辅相成,互相配合使用。这就是即利用C语言的完整性又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知 b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异 或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能, 并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构 成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表达式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)( ⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。 用3线—8线译码器(74L138)和逻辑门设计实现函数 CBA A B C A B C A B C F +++= 设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块

数字系统设计

第一次作业 EDA 的英文全称是什么EDA 的中文含义是什么 答:ED自动化A 即Electronic Design Automation 的缩写,直译为:电子设计。 什么叫 EDA 技术利用 EDA 技术进行电子系统的设计有什么特点 答:EDA 技术有狭义和广义之分,狭义EDA 技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC 自动设计技术。 ①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。 从使用的角度来讲,EDA 技术主要包括几个方面的内容这几个方面在整个电子系统的设计中分别起什么作用 答:EDA 技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。其中,硬件描述语言是重点。对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解VHDL 的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了VHDL 语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。对于实验开发系统,主要能够根据自己所拥有

数字秒表的设计与实现实验报告

电子科技大学《数字秒表课程设计》 姓名: xxx 学号: 学院: 指导老师:xx

摘要 EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。该设计具有外围电路少、集成度高、可靠性强等优点。通过数码管驱动电路动态显示计时结果。给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。 关键词:FPGA, VHDL, EDA, 数字秒表

目录 第一章引言 (4) 第二章设计背景 (5) 2.1 方案设计 (5) 2.2 系统总体框图 (5) 2.3 -FPGA实验板 (5) 2.4 系统功能要求 (6) 2.5 开发软件 (6) 2.5.1 ISE10.1简介 (6) 2.5.2 ModelSim简介 (6) 2.6 VHDL语言简介 (7) 第三章模块设计 (8) 3.1 分频器 (8) 3.2 计数器 (8) 3.3 数据锁存器 (9) 3.4 控制器 (9) 3.5 扫描控制电路 (10) 3.6 按键消抖电路 (11) 第四章总体设计 (12) 第五章结论 (13) 附录 (14)

第一章引言 数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。

数字电路实验计数器的设计

数字电路与逻辑设计实验报告实验七计数器的设计 :黄文轩 学号:17310031 班级:光电一班

一、实验目的 熟悉J-K触发器的逻辑功能,掌握J-K触发器构成异步计数器和同步计数器。 二、实验器件 1.数字电路实验箱、数字万用表、示波器。 2.虚拟器件: 74LS73,74LS00, 74LS08, 74LS20 三、实验预习 1. 复习时序逻辑电路设计方法 ①根据设计要求获得真值表 ②画出卡诺图或使用其他方式确定状态转换的规律 ③求出各触发器的驱动方程 ④根据已有方程画出电路图。 2. 按实验内容设计逻辑电路画出逻辑图 Ⅰ、16进制异步计数器的设计 异步计数器的设计思路是将上一级触发器的Q输出作为下一级触发器的时钟信号,置所有触发器的J-K为1,这样每次到达时钟下降沿都发生一次计数,每次前一级 触发器从1变化到0都使得后一级触发器反转,即引发进位操作。 画出由J-K触发器组成的异步计数器电路如下图所示:

使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位 触发器的输出,以及时钟信号。: 可以看出电路正常执行16进制计数器的功能。 Ⅱ、16进制同步计数器的设计 较异步计数器而言,同步计数器要求电路的每一位信号的变化都发生在相同的时间点。

因此同步计数器各触发器的时钟脉冲必须是同一个时钟信号,这样进位信息就要放置在J-K 输入端,我们可以把J-K端口接在一起,当时钟下降沿到来时,如果满足进位条件(前几位触发器输出都为1)则使JK为1,发生反转实现进位。 画出由J-K触发器和门电路组成的同步计数器电路如下图所示 使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位触发器的输出,计数器进位输出,以及时钟信号。:

数字系统设计-参考模板

第一次作业 1.1 EDA 的英文全称是什么?EDA 的中文含义是什么? 答:ED自动化A 即 Electronic Design Automation 的缩写,直译为:电子设计。 1.2什么叫 EDA 技术?利用 EDA 技术进行电子系统的设计有什么特点? 答:EDA 技术有狭义和广义之分,狭义 EDA 技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为 IES/ASIC 自动设计技术。①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。 1.3从使用的角度来讲,EDA 技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用?

答:EDA 技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。其中,硬件描述语言是重点。对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解 VHDL 的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了 VHDL 语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。对于实验开发系统,主要能够根据自己所拥有的设备,熟练地进行硬件验证或变通地进行硬件验证。 1.4 什么叫可编程逻辑器件(简称 PLD)? FPGA 和 CPLD 的中文含义分别是什么?国际上生产FPGA/CPLD 的主流公司,并且在国内占有较大市场份额的主要有哪几家?其产品系列有哪些?其可用逻辑门/等效门数大约在什么范围? 答:可编程逻辑器件(简称 PLD)是一种由用户编程以实现某种 逻辑功能的新型逻辑器件。 FPGA 和 CPLD 分别是现场可编程 门阵列和复杂可编程逻辑器件的简称。国际上生产 FPGA/CPLD 的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice 三家公司。Xilinx 公司的 FPGA 器件有 XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200 系列 等,可用门数为 1200~18 000;Altera 公司的 CPLD 器件有

数字电路及设计实验

常用数字仪表的使用 实验内容: 1.参考“仪器操作指南”之“DS1000操作演示”,熟悉示数字波器的使用。 2.测试示波器校正信号如下参数:(请注意该信号测试时将耦合方式设置为直流耦合。 峰峰值(Vpp),最大值(Vmax),最小值(Vmin), 幅值(Vamp),周期(Prd),频率(Freq) 顶端值(Vtop),底端值(Vbase),过冲(Overshoot), 预冲(Preshoot),平均值(Average),均方根值(Vrms),即有效值 上升时间(RiseTime),下降时间(FallTime),正脉宽(+Width), 负脉宽(-Width),正占空比(+Duty),负占空比(-Duty)等参数。 3.TTL输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低 电平是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V。 请采用函数信号发生器输出一个TTL信号,要求满足如下条件: ①输出高电平为3.5V,低电平为0V的一个方波信号; ②信号频率1000Hz; 在示波器上观测该信号并记录波形数据。

集成逻辑门测试(含4个实验项目) (本实验内容选作) 一、实验目的 (1)深刻理解集成逻辑门主要参数的含义和功能。 (2)熟悉TTL 与非门和CMOS 或非门主要参数的测试方法,并通过功能测试判断器件好坏。 二、实验设备与器件 本实验设备与器件分别是: 实验设备:自制数字实验平台、双踪示波器、直流稳压电源、数字频率计、数字万用表及工具; 实验器件:74LS20两片,CC4001一片,500Ω左右电阻和10k Ω左右电阻各一只。 三、实验项目 1.TTL 与非门逻辑功能测试 按表1-1的要求测74LS20逻辑功能,将测试结果填入与非门功能测试表中(测试F=1、0时,V OH 与V OL 的值)。 2.TTL 与非门直流参数的测试 测试时取电源电压V CC =5V ;注意电流表档次,所选量程应大于器件电参数规范值。 (1)导通电源电流I CCL 。测试条件:输入端均悬空,输出端空载。测试电路按图1-1(a )连接。 (2)低电平输入电流I iL 。测试条件:被测输入端通过电流表接地,其余输入端悬空,输出空载。测试电路按图1-1(b )连接。 (3)高电平输入电流I iH 。测试条件:被测输入端通过电流表接电源(电压V CC ),其余输入端均接地,输出空载。测试电路按图1-1(c )连接。 (4)电压传输特性。测试电路按图1-2连接。按表1-2所列各输入电压值逐点进行测量,各输入电压值通过调节电位器W 取得。将测试结果在表1-2中记录,并根据实测数据,做出电压传输特性曲线。然后,从曲线上读出V OH ,V OL ,V on ,V off 和V T ,并计算V NH ,V NL 等参数。 表1-1 与非门功能测试表

数字系统设计软件实验报告

实验一QuartusⅡ9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用; 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验流程: 1、仔细阅读书上的操作指南,学会在QuartusⅡ9.1中创建新的工程,创建过程如下所示: 1)、建立新设计项目: ①启动QuartusⅡ9.1软件,在软件的管理器窗口选File下拉菜单,即File→New Project Wizard,则出现新建工程向导窗口。如下所示: ②点击Next按钮,将弹出新建工程设置窗口,如下图所示。在新建工程设置窗口中设置好工程的存放路径、工程名称等。

③点击Next进入添加文件窗口,如下图。由于尚未创建文件,跳过该步骤。 ④点击Next按钮,进入选择目标芯片窗口。在这里我们选择Cyclone系列的EP1C6Q240C8,如下图:

⑤点击Next按钮,进入EDA工具设置窗口,通常选择默认的“None”,表示选择QuartusⅡ自带的仿真器和综合器。如下图: ⑥点击Next按钮,弹出New Project Wizard概要对话框,在这个窗口中列出了所有前面设置的结果。若有错误则点击Back回去修改,否则点击Finish结束,即完成新工程的设定工作。如下图:

2)、文本设计输入: ①在QuartusⅡ主界面菜单栏中选择File下拉菜单中的New,弹出新建设计文件窗口,选择VHDL File项,点击OK按钮即可打开VHDL文本编辑窗口,其默认文件名为“Vhdl.vhd”。 ②出现文本编辑窗口后,我们可以直接在空白界面中键入所设计的VHDL文本。这时我们将书本中的程序输入到文本编辑环境中去。程序如下: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin

《verilog_数字系统设计课程》(第二版)思考题答案

绪论 1.什么是信号处理电路?它通常由哪两大部分组成? 信号处理电路是进行一些复杂的数字运算和数据处理,并且又有实时响应要求的电路。它通常有高速数据通道接口和高速算法电路两大部分组成。 2.为什么要设计专用的信号处理电路? 因为有的数字信号处理对时间的要求非常苛刻,以至于用高速的通用处理器也无法在规定的时间内完成必要的运算。通用微处理器芯片是为一般目的而设计的,运算的步骤必须通过程序编译后生成的机器码指令加载到存储器中,然后在微处理器芯片控制下,按时钟的节拍,逐条取出指令分析指令和执行指令,直到程序的结束。微处理器芯片中的内部总线和运算部件也是为通用目的而设计,即使是专为信号处理而设计的通用微处理器,因为它的通用性也不可能为某一特殊的算法来设计一系列的专用的运算电路而且其内部总线的宽度也不能随便的改变,只有通过改变程序,才能实现这个特殊的算法,因而其算法速度也受到限制所以要设计专用的信号处理电路。 3.什么是实时处理系统? 实时处理系统是具有实时响应的处理系统。 4.为什么要用硬件描述语言来设计复杂的算法逻辑电路? 因为现代复杂数字逻辑系统的设计都是借助于EDA工具完成的,无论电路系统的仿真和综合都需要掌握硬件描述语言。 5.能不能完全用C语言来代替硬件描述语言进行算法逻辑电路的设计? 不能,因为基础算法的描述和验证通常用C语言来做。如果要设计一个专用的电路来进行这种对速度有要求的实时数据处理,除了以上C语言外,还须编写硬件描述语言程序进行仿真以便从电路结构上保证算法能在规定的时间内完成,并能通过与前端和后端的设备接口正确无误地交换数据。 6.为什么在算法逻辑电路的设计中需要用C语言和硬件描述语言配合使用来提高设计效率? 首先C语言很灵活,查错功能强,还可以通过PLI编写自己的系统任务,并直接与硬件仿真器结合使用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比Verilog HDL更完整,此外,C语言有可靠地编译环境,语法完备,缺陷缺少,应用于许多的领域。比较起来,Verilog语言只是针对硬件描述的,在别处使用并不方便。而用Verilog的仿真,综合,查错等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以只有在C语言的配合使用下,Verilog才能更好地发挥作用。C 语言与Verilog HDL语言相辅相成,互相配合使用。这就是即利用C语言的完整性又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的

数字电路与系统设计实验报告

数字电路与系统设计实验报告 学院: 班级: 姓名:

实验一基本逻辑门电路实验 一、实验目的 1、掌握TTL与非门、与或非门和异或门输入与输出之间的逻辑关系。 2、熟悉TTL中、小规模集成电路的外型、管脚和使用方法。 二、实验设备 1、二输入四与非门74LS00 1片 2、二输入四或非门74LS02 1片 3、二输入四异或门74LS86 1片 三、实验内容 1、测试二输入四与非门74LS00一个与非门的输入和输出之间的逻辑关系。 2、测试二输入四或非门74LS02一个或非门的输入和输出之间的逻辑关系。 3、测试二输入四异或门74LS86一个异或门的输入和输出之间的逻辑关系。 四、实验方法 1、将器件的引脚7与实验台的“地(GND)”连接,将器件的引脚14与实验台的十5V连接。 2、用实验台的电平开关输出作为被测器件的输入。拨动开关,则改变器件的输入电平。 3、将被测器件的输出引脚与实验台上的电平指示灯(LED)连接。指示灯亮表示输出低电平(逻辑为0),指示灯灭表示输出高电平(逻辑为1)。 五、实验过程 1、测试74LS00逻辑关系 (1)接线图(图中K1、K2接电平开关输出端,LED0是电平指示灯) (2)真值表 2、测试74LS02逻辑关系

(1)接线图 (2)真值表 3、测试74LS86逻辑关系接线图 (1)接线图 (2)真值表 六、实验结论与体会 实验是要求实践能力的。在做实验的整个过程中,我们首先要学会独立思考,出现问题按照老师所给的步骤逐步检查,一般会检查处问题所在。实在检查不出来,可以请老师和同学帮忙。

实验二逻辑门控制电路实验 一、实验目的 1、掌握基本逻辑门的功能及验证方法。 2、掌握逻辑门多余输入端的处理方法。 3、学习分析基本的逻辑门电路的工作原理。 二、实验设备 1、基于CPLD的数字电路实验系统。 2、计算机。 三、实验内容 1、用与非门和异或门安装给定的电路。 2、检验它的真值表,说明其功能。 四、实验方法 按电路图在Quartus II上搭建电路,编译,下载到实验板上进行验证。 五、实验过程 1、用3个三输入端与非门IC芯片74LS10安装如图所示的电路。 从实验台上的时钟脉冲输出端口选择两个不同频率(约7khz和14khz)的脉冲信号分别加到X0和X1端。对应B和S端数字信号的所有可能组合,观察并画出输出端的波形,并由此得出S和B(及/B)的功能。 2、实验得真值表

数字系统设计实验

多周期MIPS微处理器设计 一、实验目的 (1)、熟悉MIPS指令系统。 (2)、掌握MIPS多周期微处理器的工作原理和实现方法。 (3)、掌握控制器的微程序设计方法。 (4)、掌握MIPS多周期微处理器的测试方法。 (5)、了解用软件实现数字系统设计的方法。 二、实验任务 设计一个32位MIPS多周期微处理器,具体的要求如下: 1、至少运行下列的6类32条MIPS指令。 (1)、算术逻辑指令:ADD、ADDU、SUB、SUBU、ADDI、ADDIU。 (2)、逻辑运算指令:AND、OR、NOR、XOR、ANDI、ORI、XORI、SLT、SLTU、SLTI、SLTIU。 (3)、位移指令:SLL、SLLV、SRL、SRLV、SRA。 (4)、条件分支指令:BEQ、BNE、BGEZ、BGTZ、BLEZ、BLTZ。 (5)、无条件跳转指令:J、JR。 (6)、数据传送指令:LW、SW。 2、在XUP Virtex-2 Pro开发系统中实现该32位MIPS多周期微处理器,要求运行速度(CPU 工作时钟)大于25MHz。 三、实验设备 1、装有ISE、Modelsim SE和Chipscope Pro软件的计算机。 2、XUP Virtex-2 pro开发系统一套。 3、SVGA显示器一台。 四、MIPS指令简介 MIPS指令集具有以下特点: 1、简单的LOAD/STORE结构:所有的计算机类型的指令均从寄存器堆中读取数据并

把结果写入寄存器堆中,只有LOAD和STORE指令访问存储器。 2、易于流水线CPU的设计:MIPS指令集的指令格式非常规整,所有的指令均为32位,而且指令操作码在固定的位置上。 3、易于编译器的开发:一般来讲,编译器在编译高级语言程序时,很难用到复杂的指令,MIPS指令的寻址方式非常的简单,每条指令的操作也非常简单。 MIPS系统的寄存器结构采用标准的32位寄存器堆,共32个寄存器,标号为0-31。其中第0号寄存器永远为常数0。 CPU所支持的MIPS指令格式一共有3种,分别为R、I、J。R类型的指令从寄存器堆中读出两个源操作数,计算结果写回到寄存器堆;I类型的指令使用一共16为立即数作为源操作数;J类型的指令使用一共26位立即数作为跳转的目标地址(target address)。 MIPS的指令格式如图1所示,指令格式中OP(operation)是指令操作码;RS(register sourse)是源操作数的寄存器号;RD(register destination)是目标寄存器号;RT(register target)可以既是源寄存器号,又可以使目标寄存器号,由具体位置决定;FUNCT(function)可以被认为是扩展的操作码;SA(shift amount)由移位指令使用,定义移位位数。 I型中的Immediate是16为立即数。立即数型算术逻辑运算指令、数据传输指令和条件分支指令均采用这种形式。在立即数型算术逻辑运算指令、数据传送指令中,Immediate进行符号扩展至32位;而在条件分支指令中,Immediate先进行符号扩展至32位再左移2位。 在J形指令中26为target由JUMP指令使用,用于产生跳转的目标地址。 下面通过表格简单介绍本实验使用的MIPS核心指令。表1列出了本实验使用到的MIPS指令的格式和OP、FUNCT等简要信息。

基于FPGA的现代数字系统设计实验报告

****大学 实验报告 课程名称:基于FPGA的现代数字系统设计 实验名称:基于HDL十进制计数显示系统设置 姓名: 学号: 班级: 指导教师: ****大学信息工程学院制

基于HDL十进制计数显示系统设置 一、实验要求 1.设计具有异步复位,同步使能的十进制计数器,其计数结果通过七段数码管,发光二极管等进行显示。 2.主要设计的模块有十进制计数模块和数码管驱动模块以及消抖模块。 3.需要将按键输入的时钟,然后通过消抖模块消抖后,再输出至后续使用。 4.共阴极数码管驱动。 二、实验原理 本次的设计是一个具有数显输出的十进制计数器。示意图如2.1所示。 图2.1 七段数码管属于数码管的一种,是由7段二极管组成。按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。本实验使用共阴数码管。它是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。 显示译码器,用HDL语言判断CLK的上升沿信号,每次收到一次上升沿信号,计数器的值加一并显示在数码管上,所以本次实验会将十进制计数与七段数码管的显示分别写在两个模块里面。 系统模块划分及引脚连线图如下:

三、实验步骤(设计输入) 1.十进制计数器模块 module cnt10(clk,clr,ena,sum,cout); input clk,clr,ena; output [3:0] sum; output cout; reg [3:0] sum; reg cout; always @ (posedge clk or posedge clr) if(clr==1) begin sum <= 4'b0000; cout<= 1'b0;end else if(ena==1'b1) if(sum==4'b1001) begin sum <= 4'b0000; cout<= 1'b1; end else begin sum <= sum+1; cout<= 1'b0; end else begin sum <= sum; cout<= cout; end Endmodule 程序主要思路是用always等待clk与clr的上升沿信号,因为是异步清零所以在always 中也要等待clr的清零信号。用if语句判断clr信号,为1则清零。判断ena信号,为1进行计数操作,为0输出保持不变。计数中,判断sum的值如果为9时,进行进位操作,并将sum值赋值为0 2.数码管驱动模块 module led7 (sum ,out ); input [3:0] sum; output [6:0] out; reg [6:0] out ; always @(sum) begin out = {7{1'b0}};

数字电路第8章 数字系统设计基础-习题答案

第8章数字系统设计基础 8.1 数字系统在逻辑上可以划分成哪两个部分?其中哪一部分是数字系统的核心? 解:数字系统在逻辑上可以划分成控制器和数据处理器两部分,控制器是数字系统的核心。 8.2 什么是数字系统的ASM图?它与一般的算法流程图有什么不同?ASM块的时序意义是什么?解:算法状态机(ASM)是数字系统控制过程的算法流程图。它与一般的算法流程图的区别为ASM 图表可表示事件的精确时间间隔序列,而一般的算法流程图只表示事件发生的先后序列,没有时间概念。ASM块的时序意义是一个ASM块内的操作是在一个CLK脉冲作用下完成的。 8.3 某数字系统,在T0状态下,下一个CLK到,完成无条件操作:寄存器R←1010,状态由T0→ T1。在T1状态下,下一个CLK到,完成无条件操作:R左移,若外输入X=0,则完成条件操作:计数器A←A+1,状态由T1→T2;若X=1,状态由T1→T3。画出该系统的ASM图。 解:ASM图表如图所示 8.4 一个数字系统在T1状态下,若启动信号C=0,则保持T1状态不变;若C=1,则完成条件操作: A←N1,B←N2,状态由T1→T2。在T2状态下,下一个CLK到,完成无条件操作B←B?1,若M=0,则完成条件操作:P右移,状态由T2→T3;若M=1,状态由T2→T4→T1。画出该数字系统的ASM图。 解:ASM图表如图

8.5 控制器状态图如题图8.5所示,画出其等效的ASM图。 题图8.5 解:ASM图 8.6 设计一个数字系统,它有三个4位的寄存器X、Y、Z,并实现下列操作: ①启动信号S出现,传送两个4位二进制数N1、N2分别给寄存器X、Y; ② 如果X>Y,左移X的内容,并把结果传送给Z; ③如果X

相关文档
相关文档 最新文档