当前位置:文档之家› 硬件描述语言08-09B卷标准答案

硬件描述语言08-09B卷标准答案

硬件描述语言08-09B卷标准答案
硬件描述语言08-09B卷标准答案

2008/2009 学年第一学期末考试试题答案及评分标准

(B卷)

硬件描述语言及器件

使用班级:06060241/06060242

一、填空题(30分,每空格1分)

1、试举出两种可编程逻辑器件 CPLD 、 FPGA 。

2、VHDL程序的基本结构至少应包括实体、结构体两部分和对

库的引用声明。

3、1_Digital标识符合法吗?否, \12 @ +\ 呢?合法。

4、在VHDL的常用对象中,信号、变量可以被多次赋予不同的值,

常量只能在定义时赋值。

5、实体的端口模式用来说明数据、信号通过该端口的传输方向,端口模式有 in 、

Out 、 inout 、 buffer 。

6、VHDL语言中std_logic类型取值‘Z’表示高阻,取值‘X’表示不确定。

7、整型对象的范围约束通常用 range 关键词,位矢量用 downto/to 关键词。

8、位类型的初始化采用(字符/字符串)字符、位矢量用字符串。

9、进程必须位于结构体内部,变量必须定义于进程/包/子程序内部。

10、并置运算符 & 的功能是把多个位或位向量合并为一个位向量。

11、进程执行的机制是敏感信号发生跳变。

12、判断CLK信号上升沿到达的语句是 if clk’event and clk = ‘1’ then .

13、 IF 语句各条件间具有不同的优先级。

14、任何时序电路都以时钟为驱动信号,时序电路只是在时钟信号的边沿到来时,

其状态才发生改变。

15、 Moore 状态机输出只依赖于器件的当前状态,与输入信号无关。

二、判断对错并改正(12分,每小题3分)

1、CONSTANT T2:std_logic <= ’0’;

(错)改正:把<= 换为:= 。

2、若某变量被定义为数值型变量,未赋初始值时默认值为‘0’。

(错)改正:把‘0’的单引号去掉。

3、在结构体中定义一个全局变量(V ARIABLES),可以在所有进程中使用。

(错)改正:“变量(V ARIABLES)”改为“信号”。

4、语句 type wr is (wr0,wr1,wr2,wr3,wr4,wr5); 定义了一个状态机变量wr,

可以直接对wr赋值。

(错)改正:语句 type wr is (wr0,wr1,wr2,wr3,wr4,wr5); 定义了一个状态机类型wr,需要定义一个该类型的对象,才可以对该对象赋值。

三、简答(8分,每小题4分)

1、简述如何利用计数器精确控制时序。

?只要知道晶振频率f,即可知道周期T=1/f;

?使用一个计数器,可以通过计数值n,精确知道当计数值为n时消耗的时间t=nT;

?上例中以n为控制条件,可以控制其它信号在某时刻变高,某时刻变低,从而产生精

确时序;

例如:

?PROCESS (clr,clk)

?BEGIN

? IF(clr=1) THEN

?Count_B<=“00000000”;

?q <= ‘0’;

? ELSIF (clk'EVENT AND clk = ‘1’ ) THEN

?Count_B<=count_B + 1;

?IF (Count_B = “00000000”) THEN

?q <= ‘1’;

?ELSIF (Count_B = “00000001”) THEN

?q <= ‘0’;

?ELSIF (Count_B = “00000011”) THEN

?q <= ‘1’;

?ELSIF (Count_B = “00000100”) THEN

?q <= ‘0’;

?END IF;

? END IF;

?END PROCESS;

2、简述moore状态机和mealy状态机的区别。

从输出的时序上看,Mealy机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的。Moore机的输出则仅为当前状态的函数,在输入发生变化时还必须等待时钟的到来,时钟使状态发生变化时才导致输出的变化。

Moore型状态机:次态=f(现状,输入),输出=f(现状);

Mealy型状态机:次态=f(现状,输入),输出=f(现状,输入);

四、编程(共50分)

1、完成下图所示的触发器。(本题10分)

library IEEE;

use IEEE.std_logic_1164.all;

entity VposDff is

port (CLK, CLR, D: in STD_LOGIC; ----------2分

Q, QN: out STD_LOGIC ); ----------4分

end VposDff;

architecture VposDff_arch of VposDff is

begin

process ( CLK, CLR ) ----------6分

begin

if CLR='1' then Q <= '0'; QN <='1';

elsif CLK'event and CLK='1' then

Q <= D; QN <= not D; ----------8分 end if;

end process; ----------10分end VposDff_arch;

2、完成以下4位全加器代码(本题10分)

library IEEE;

use IEEE.std_logic_1164.all;

entity full_add is

port (

a,b: in std_logic_vector (3 downto 0);

cin: in std_logic;

cout: out std_logic;

sum: out std_logic_vector (3 downto 0)

);

end full_add;

architecture full_add_arch of full_add is

component adder

port ( a,b,c: in std_logic;

carr: out std_logic;

sum: out std_logic );

end component;

signal c1,c2,c3: std_logic; 2分

begin

u0:adder port map(a(0),b(0),cin,c1,sum(0)); 4分

u1:adder port map(a(1),b(1),c1,c2,sum(1)); 5分

u2:adder port map(a(2),b(2),c2,c3,sum(2)); 6分

u3:adder port map(a(3),b(3),c3,cout,sum(3)); 10分end full_add_arch;

3、补充完整如下代码,使之完成4状态不断循环。(本题10分)

ARCHITECTURE arc OF ss IS

type states is ( st0,st1,st2,st3 ); 2分

signal outc: states; 4分

BEGIN

PROCESS(clk)

BEGIN

IF reset='1' then

outc <=st0 ; 6分

elsif clk'event and clk='1' then

CASE outc IS

WHEN st0 => outc <= st1; 7分

WHEN st1 => outc <= st2; 8分

WHEN st2 => outc <= st3; 9分

WHEN st3 => outc <= st0; 10分

WHEN OTHERS => outc <=st0;

END CASE;

end if;

END PROCESS;

END arc;

4、设计异或门逻辑:(本题20分)

如下异或门,填写右边的真值表。(此项5分)

其表达式可以表示为:(此项5分)

这一关系图示如下:

试编写完整的VHDL代码实现以上逻辑。可以采用任何描述法。(此项10分)

a

library ieee;

use ieee.std_logic_1164.all; 1分entity yihuo1 is

port( a,b :in std_logic;

y :out std_logic );

end yihuo1; 4分architecture yihuo1_behavior of yihuo1 is

begin 7分process(a,b) y<=a xor b;

begin (第2种写法)

if a=b then

y<='0';

else

y<='1';

end if;

end process;

end yihuo1_behavior; 10分

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

硬件描述语言及器件实验指导书

硬件描述语言及器件实验指导书 电子科学与技术专业组

第1章实验一用硬件描述语言的方法设计一个三输入与门电 路 一、实验目的 1、掌握MAX+plusII的使用方法。 2、掌握VHDL语言程序的基本结构。 2、掌握使用硬件描述语言设计数字电路的方法和步骤。 3、掌握用硬件描述语言设计三输入与门电路的方法。 二、实验器材 1.台式计算机1台。 2.可编程逻辑逻辑器件实验软件1套。 3.下载电缆一套。 4.示波器一台。 三、实验说明 1.台式计算机用于向可编程逻辑逻辑器件实验软件提供编程、仿真、下载的平台,供用户使用。 2.可编程逻辑逻辑器件实验软件向原理图的设计提供平台,并将调试好的原理图下载到可编程逻辑逻辑器件中。 3.下载电缆是可编程逻辑器件软件和可编程逻辑逻辑器件之间的接口电缆,为了便于区别,用不同颜色导线区分下载电缆的电源、地和信号,一般用红色导线接电源,用黑色导线接地。 4.示波器用于观察可编程逻辑器件执行程序时输出信号的变化。 四、实验内容与要求 用硬件描述语言的方法设计一个三输入与门电路,要求: (1)根据三输入与门的逻辑表达式,在构造体中直接使用并行赋值语句实现,并进行仿真;

(2)根据三输入与门的真值表,在构造体中使用进程语句实现,并进行仿真; 五、实验步骤(下面七个的实验的软件的使用具体步骤跟本次试验一样不再详述) 1.打开新建菜单选择“textedtiorfile”,这个文件是写程序编程用的。 2.程序写完后点“保存”,注意(1)保存的格式是.vhd,(2)保存的地址不能是桌面和硬盘的根目录,否则在后面的编程将出现错误。

3.在file→projectset→projecttocurrentfile,这步是将文件设置在工程里,能够正常编译和下载。

可编程逻辑器件与硬件描述语言

组合逻辑电路实验(一)实验报告 一.实验名称:3-8译码器设计 二.实验目的 1.掌握ISE 开发工具的使用,掌握FPGA 开发的基本步骤; 2.掌握组合逻辑电路设计的一般方法; 3.掌握程序下载方法,了解UCF 文件的格式; 4.初步了解开发板资源,掌握开发板使用方法。重点了解滑动开关和LED 显示灯的使用方法。 三.实验内容 1.用VHDL 实现3-8译码器模块 译码器电路如图2-1所示。其功能如表2-1所示。试用VHDL 实现该译码器,并在开发板上进行检验。 表2-1 译码器功能表 EN A B C Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 3-8 译码器 A B C EN Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 图2-1 3-8译码器

0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 2.将程序下载到FPGA并进行检验 (1)资源使用要求:用滑动开关SW3~SW1作为输入A,B,C;滑动开关SW0控制EN;8个LED灯表示8个输出。 (2)检验方法:当SW0处于ON(EN=1)位置时,所有LED灯灭;当SW0处于OFF(EN=0),反映当前输入的译码输出在LED灯上显示,即当输入为000(滑动开关SW3-SW1处于OFF状态),LED0亮,其它灯灭,等等。 四.实验步骤 1.启动ISE,新建工程文件,编写3-8译码器的VHDL模块; 2.新建UCF文件,输入位置约束; 3.完成综合、实现,生成下载文件; 4.连接开发板USB下载线,开启开发板电源; 5.下载到FPGA; 6.拨动开关,验证结果是否正确。 五.主要vhdl代码 architecture Behavioral of coder_38 is --3-8译码器行为级描述signal x:STD_LOGIC_VECTOR (2 downto 0); begin x <= A&B&C;

实验3 基于硬件描述语言的电路设计

实验3 基于硬件描述语言的电路设计 一、实验目的 1 、了解可编程数字系统设计的流程; 2 、掌握Quartus II 软件的使用方法; 3 、掌握采用硬件描述语言设计数字系统的方法和流程。 二、实验设备 1、计算机:Quartus II 软件 2、Altera DE0 三、实验内容 要求1:学习并掌握硬件描述语言(VHDL或Verilog HDL);熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。参考“参考内容1”中给出的与门源程序,编写一个异或门逻辑电路。 1)用QuartusII波形仿真验证; 2)下载到DE0开发板验证。 要求2:熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。参考“参考内容2”中给出的将8421BCD码转换成0-9的七段码译码器源程序,编写一个将二进制码转换成0-F 的七段码译码器。 1)用QuartusII波形仿真验证; 2)下载到DE0开发板,利用开发板上的数码管验证。 要求3:熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。参考“参考内容3”中给出的四位二进制加减计数器的源程序,编写一个计数器。 1)用QuartusII波形仿真验证; 2)下载到DE0开发板验证。 要求4:熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。参考“参考内容4”中给出的50M分频器的源程序,编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz。 1)下载到DE0开发板验证。(提示:利用DE0板上已有的50M晶振作为输入信号,通过开发板上两个的LED灯观察输出信号)。电路框图如下: 四、实验结果 1、用硬件描述语言(VHDL 或Verilog HDL)实现一个异或门电路。 VHDL源程序: Library ieee; use ieee.std_logic_1164.all;

关于硬件描述语言(VHDL和Verilog)概要

关于硬件描述语言【VHDL和Verilog】 随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。目前最主要的硬件描述语言是VHDL和Verilog HDL。 究竟选择VHDL还是verilog HDL? 这是一个初学者最常见的问题。其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看人的使用习惯。如果您是集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。 学习HDL的几点重要提示 1.了解HDL的可综合性问题: HDL有两种用途:系统仿真和硬件实现。如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果我们的程序是用于硬件实现(例如:用于FPGA设计),那么我们就必须保证程序“可综合”(即程序的功能可以用硬件电路实现)。不可综合的HDL语句在软件综合时将被忽略或者报错。应当牢记一点:“所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。” 2. 用硬件电路设计思想来编写HDL: 学好HDL的关键是充分理解HDL语句和硬件电路的关系。编写HDL,就是在描述一个电路,写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言。要做到这一点,需要多实践,多思考,多总结。 3.语法掌握贵在精,不在多: 30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,在程序移植或者更换软件平台时,容易产生兼容性问题,

硬件描述语言范例

硬件描述语言语言设计实例 1、8-3编码器 module encode_verilog ( a ,b ); input [7:0] a ; //编码器输入 wire [7:0] a ; output [2:0] b ; //编码器输出 reg [2:0] b; always @ ( a ) begin case ( a ) //编码器某一输入端口为高电平输出相应的3位二进制数 8'b0000_0001 : b<=3'b000; //0 8'b0000_0010 : b<=3'b001; //1 8'b0000_0100 : b<=3'b010; //2 8'b0000_1000 : b<=3'b011; //3 8'b0001_0000 : b<=3'b100; //4 8'b0010_0000 : b<=3'b101; //5 8'b0100_0000 : b<=3'b110; //6 8'b1000_0000 : b<=3'b111; //7 default : b<= 3'b000; //其他情况编码器输出3’b000 endcase end endmodule 2、8-3优先编码器 module p_encode_verilog ( A ,I ,GS ,EO ,EI ); //编码器以低为有效 input [7:0] I ; //编码器输入 wire [7:0] I ; input EI ; //输入使能,EI=0时,编码器正常工作 wire EI ; output [2:0] A ; //编码器输出 reg [2:0] A ; output GS ; //优先编码器工作状态标志,编码器的八个输入端有信号输入时,GS=0 reg GS ; output EO ; //输出使能, reg EO ; always @ ( I or EI ) if ( EI ) //使用if、else if表明条件的优先级顺序 begin A <= 3'b111; GS <= 1; EO <= 1; end else if ( I[7] == 0 ) begin A <= 3'b000;

课程名称FPGA与硬件描述语言

课程名称:FPGA与硬件描述语言 课程编码:7002301 课程学分:2学分 课程学时:32学时 适应专业:电子信息工程、电子信息工程(理工科实验班) 《FPGA与硬件描述语言》 FPGA and Hardware Describing Language 教学大纲 一、课程性质与任务 性质:本课程的授课对象为电子信息工程专业二年级本科生,课程属性为专业基础必修课,该课程讲授FPGA基本原理及结构,先进的硬件描述语言(VHDL语言),FPGA设计与应用等知识。 任务:通过对(VHDL)硬件描述语言,FPGA设计等知识的学习,掌握硬件描述语言,FPGA设计的基本知识。培养学生动手能力以及解决实际问题的能力。理解VHDL语言,学会FPGA设计方法等。 二、课程教学基本内容及要求 第一章绪论VHDL的数据和表达式 (一)教学基本要求: 掌握:VHDL程序的特点,VHDL的数据,VHDL的表达式。 了解:FPGA基本原理及结构。 (二)教学基本内容: 绪论:FPGA基本原理及结构 第一章VHDL的数据和表达式 1.1 VHDL程序的特点 1.2 VHDL程序的基本结构 1.3 VHDL的数据 1.4 VHDL的表达式 第二章VHDL的顺序描述语句 (一)教学基本要求: 掌握:信号赋值语句和变量赋值语句,if语句,case语句,null语句。 理解:loop语句。 (二)教学基本内容:

第二章VHDL的顺序描述语句 2.1信号赋值语句和变量赋值语句 2.2 if语句 2.3 case语句 2.4 loop语句 2.5 null语句 第三章VHDL的并行描述语句 (一)教学基本要求: 掌握:进程语句,并发信号赋值语句,元件例化语句。 理解:条件信号赋值语句,选择信号赋值语句。 了解:生成语句。 (二)教学基本内容: 第三章VHDL的并行描述语句 3.1进程语句 3.2并发信号赋值语句 3.3条件信号赋值语句 3.4选择信号赋值语句 3.5元件例化语句 3.6生成语句 第四章VHDL的时钟信号描述方法 (一)教学基本要求: 掌握:时钟的VHDL描述方法,时序电路中复位信号的VHDL描述方法。(二)教学基本内容: 第四章VHDL的时钟信号描述方法 4.1时钟信号的VHDL描述方法 4.2时序电路中复位信号的VHDL描述方法 第五章VHDL的有限状态机的设计 (一)教学基本要求: 掌握:有限状态机的基本概念及应用。 理解:一个Moore型有限状态机的设计实例 (二)教学基本内容: 第五章VHDL的有限状态机的设计 5.1 有限状态机的基本概念 5.2一个Moore型有限状态机的设计实例

数字电子技术实验报告_基于Quartus II的硬件描述语言电路设计

数字电子技术基础 实验报告 题目:实验四基于Quartus II的硬件描述语言电路 设计 小组成员: 小组成员:

一、实验四基于Quartus II的硬件描述语言电路设 计 一、实验目的 1)学习并掌握硬件描述语言VHDL;熟悉门电路的逻辑功能,并用硬件描述语言 实现门电路的设计。 2)熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。 3)熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。 4)熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。 二、实验要求 要求1:参考“参考内容1”中给出的与门源程序,编写一个异或门逻辑电路。1)用QuartusII波形仿真验证;2)下载到DE0开发板验证。 要求2:参考“参考内容2”中给出的将8421BCD码转换成0-9的七段码译码器源程序,编写一个将二进制码转换成0-E的七段码译码器。1)用QuartusII波形仿真验证;2)下载到DE0开发板,利用开发板上的数码管验证。 要求3:参考“参考内容3”中给出的四位二进制计数器的源程序,编写一个计数器实现0-E计数。用QuartusII波形仿真验证; 要求4:参考“参考内容4”中给出的50M分频器的源程序,编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz。下载到DE0开发板验证。(提示:利用DE0板上已有的50M晶振作为输入信号,通过开发板上两个的LED灯观察输出信号)。电路框图如下:

要求5:利用已经实现的VHDL模块文件,顶层文件采用原理图设计方法,实现0-E计数自动循环显示,频率1Hz和10Hz可以切换。(提示:如何将VHDL模块文件在顶层原理图文件中引用,参考参考内容5) 三、实验设备 (1)电脑一台; (2)数字电路实验箱; (3)数据线一根。 四、实验原理 1.VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 2.VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。 3.VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。 4.VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

专科《硬件描述语言和数字系统设计》_试卷_答案

专科《硬件描述语言和数字系统设计》 一、(共36题,共150分) 1. reg类型的数组通常用于描述存储器,reg [15: 0] MEM [0:1023];定义存储器字的位数为(2分) A.1024 B.16 C.16384 D.1040 .标准答案:B 2. 下列关于同步有限状态机的描述错误的是()(2分) A.状态变化只能发生在同一个时钟跳变沿; B.状态是否变化要根据输入信号,只要输入条件满足,就会立刻转入到下一个状态。 C.在时钟上升沿,根据输入信号的变化,确定电路状态 D.利用同步状态机可以设计出极其复杂灵活的数字逻辑电路系统 .标准答案:B 3. 关于如下描述,正确的说法是 ( ) (2分) A.这种描述是错误的 B.该电路不可综合 C.该电路不可综合,但生成的不是纯组合逻辑 D.以上说法都不对 .标准答案:D 4. 下列关于流水线的描述错误的是( ) (2分) A.流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法; B.设计流水线目的是提高数据吞吐率 C.流水线缩短了在一个时钟周期内给的那个信号必须通过的通路长度,从而可以提高时钟频率 D.增加流水线长度可以节省更多延迟,流水线越长,首次延迟越大,系统频率就会降低。 .标准答案:D 5. 以下关于Top-Down的设计方法不正确的描述是( ) (2分) A.Top-Down的设计方法首先从系统设计入手; B.Top-Down设计中的系统总体仿真与所选工艺有关 C.Top-Down的设计方法从顶层进行功能划分和结构设计 D.自顶向下的设计方法可以早期发现结构上的错误 .标准答案:B 6. 在verilog中,下列哪些操作一定是单bit?()(2分) A.== B.^ C.> D.&&  .标准答案:A,B,C,D 7. 下面哪些是verilog的关键字()(2分) A.input B.assign C.write D.module .标准答案:A,B,D 8. 全球主要的FPGA厂家有()(2分) A.Xilinx B.Altera C.Broadcom https://www.doczj.com/doc/363343378.html,ttice .标准答案:A,B,D 9. 大规模数字逻辑设计原则,正确的说法有()(2分) A.异步设计原则 B.组合时序电路分开原则 C.面向RTL的原则 D.先电路后代码的原则 .标准答案:B,C 10. 下面有关SRAM,DRAM的叙述,正确的有()(2分) A.DRAM存储单元的结构比SRAM简单 B.DRAM比SRAM成本高 C.DRAM比SRAM速度快 D.DRAM要刷新,SRAM不刷新 .标准答案:A,D 11. 阻塞赋值与非阻塞赋值的差别及其各自的使用环境。(10分)标准答案:非阻塞(non-blocking)赋值语句(b

硬件描述语言与FPGA技术实验指导书(2012版)

《硬件描述语言与FPGA技术》 实验指导书 西北工业大学 2012/10/10

目录 实验一简单的组合逻辑设计 (3) 实验二简单分频时序逻辑电路的设计 (6) 实验三利用条件语句实现计数分频时序电路 (9) 实验四阻塞赋值与非阻塞赋值的区别 (12) 实验五用always块实现较复杂的组合逻辑电路 (16) 实验六在Verilog中使用函数 (20) 实验七在Verilog HDL中使用任务(task) (23) 实验八利用有限状态机进行时序逻辑的设计 (27) 实验九利用状态机实现比较复杂的接口设计 (32) 练习十利用SRAM设计一个FIFO (39)

实验一简单的组合逻辑设计 一、实验目的 1. 学习Quartus和ModSim两种EDA工具的使用方法; 2.掌握基本组合逻辑电路的实现方法; 3.初步了解两种基本组合逻辑电路的生成方法; 4.学习测试模块的编写; 5.通过综合和布局布线了解不同层次仿真的物理意义。 二、实验内容 本次实验采用Verilog HDL语言设计一个可综合的数据比较器,其功能是比较数据a与数据b的结果,如果两个数据相同,则输出结果1,否则给出结果0;并写出测试模型,使其进行比较全面的测试。 三、实验仪器、设备 预装了开发工具ModelSimSE、synplify的PC机。 四、实验原理 1.组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合而与 电路以前状态无关,而与其他时间的状态无关。其逻辑函数如下: Li=f(A1,A2,A3……An) (i=1,2,3…m) 其中,A1~An为输入变量,Li为输出变量。 2.组合逻辑电路的特点归纳如下: ① 输入、输出之间没有返馈延迟通道; ② 电路中无记忆单元。 3.组合逻辑设计示例:可综合的数据比较器。它的功能是比较数据a与数据b,如果 两个数据相同,则给出结果1,否则给出结果0。描述组合逻辑时常使用assign 结构。注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格 式。 模块源代码: //--------------- compare.v ----------------- module compare(equal,a,b);

硬件描述语言考试

1.fpga的中文含义:现场可编辑门阵列。Pld 的中文含义:复杂的可编辑逻辑器件。 2.数字电路从结构上可分为:组合逻辑电路和时序逻辑电路两部分。 3.一般讲:fpga是基于sram工艺的,cpld则是基于E2CMOS工艺的。 4.Altera公司的cyclone2系列fpga基本逻辑原件le主要包含一个寄存器和一个查找表。 5.Fpga一般支持JTAG和AS,PS配置方式。 6.简述cpld和fpga的区别: Cpld是复杂的可编辑逻辑器件,多为乘积项结构,触发器数量少,一般基于E2CMOS工艺,断电后程序不消失。规模小,逻辑复杂程度地。保密性好。成本低。主要用于实现简单的逻辑功能。FPGA是现场可编辑逻辑门阵列,多为寄存器加查找表结构,触发器数量多。一般基于SRAM工艺,断电后程序消失。规模大,逻辑复杂程度高,保密性较差,成本高。主要用来实现复杂的时序功能。 7.解释流水线设计方法根据原始组合逻辑电路和框图,将原始组合电路理解成多级电路级联方式。 确定系统的主要元器件估计这些元器件的相关传播延迟。 将电路划分为传播延迟相似或相等的多级。 确定需要跨级传播的信号。在每一集中插入寄存器,实现流水线设计。 8.简述HDl代码的综合 过程 翻译:综合软件读取RTL 代码并将其转换成门级 网表;翻译过程要确保 门级的输入输出关系与 RTL级描述的输入输出 关系保持一致。 优化:对门级网表进行 优化,优化是个选代搜 索的过程,并不是求解 过程,因此综合软件 的优化只是局部优化。 映射:采用器件库内的 标准原件或者FPGA内 部的逻辑单元实现优化 后的门级网表 9.解释吞吐率,延迟的 概念: 吞吐率: 延迟:从输入发生改变 时刻起,到输入发生改 变时刻止所经历的时 间。 10.成为IEEE标准的硬 件描述语言有VHDL和 Verilog HDL两种。 11.有限状态机可分为 米利型和摩尔型两种。 12.Verilog HDL支持两 种类型的变量,线网和 寄存器。 13.Verilog 的方针一 般分为激励电阻和实挒 化两种。综合过程也分 为两个步骤:行为级仿 真和功能仿真。 14.简述基于HDL的数 字系统设计的典型流程 设计要求说明,行为级 描述,行为级仿真,设 计正确?RTL级描述, 功能验证(仿真),设计 正确?逻辑综合时序验 证,布局和布线。仿真 及时序分析, 满足设计要求?FPGA 或者ASIC 15.解释阻塞赋值语句 和非阻塞赋值语句的区 别。 阻塞赋值语句首先计算 复制表达式,之后将计 算结果赋值给左侧变 量,过程连续执行,完 成赋值前不能执行其后 的其他任何语句,该语 句的执行阻塞其后的其 他语句的执行。 非阻塞赋值语句,执行 时,首先计算表达式的 值,但并不立刻将值赋 予左侧变量,赋值操作 会在always块所有语句 执行完后再赋值。复制 过程不会阻塞其后的其 他语句的执行。 16.简述组合逻辑电路 设计的一般原则。 只在一个always块中, 对同一个变量赋值(避 免竞争)。 连续赋值语句,模块实 挒和电平敏感的always 实现组合逻辑电路。 Always块采用电平敏 感的敏感列表或者直接 采用always@*形式的 敏感列表。 Always块内部采用阻 塞赋值语句。 确保在所有的条件分支 都对输出变量赋值。 确保在if和case语句 中,覆盖所有的条件分 支。 A.在if语句中使用else 子句;在case语句中使 用defauit候选项。 B.在always块开始,为 输出信号赋予默认值 17.简述时序逻辑电路 设计的一般原则。 寄存器和组合逻辑单独 描述。 寄存器采用具有边沿敏 感列表的always块实 现,在always块内采用 非阻塞赋值语句。 组合逻辑采用电平敏感 的always块实现,内部 采用阻塞赋值语句。 遵循同步时序逻辑 veriloghdl描述模板。 避免使用门控时钟和导 出时钟。 18.简述标示符的命名 规则。 标示符的首字母必须是 字母或者下划线。一般 要求标示符是描述性 的。前后统一的命名规 则可以提高代码的可读 性,有助于代码的调试, 检查,维护和修改。 Verilog hdl对大小写敏 感。 19.传播延时。 反相器的传播延时:从 输入信号发生电平改变 的百分之50时刻起,到 相应的输出信号也发生 改变的百分之50点为 止所需要的时间。 后果:由于门电路存在 一定的传播延时,可能 导致电路的输出产生错 误或者不期望的输出, 一般称为毛刺。一般不 会出现,由于噪声或者 其他原因影响出现错误 逻辑电平。 20.时序分析是数字电 路设计的关键。同步时 序逻辑电路的所有寄存 器由同一个全局时钟信 号控制,状态寄存器的 状态更新只在时钟信号 的上升沿发生,时钟分 析只要考虑电路的关键 路径即可。时序逻辑电 路的最高工作频率由电 路的最坏延迟路径决 定。延迟路径分三类: 引脚到引脚延迟,时钟 到输出延迟,寄存器到 寄存器延迟,如果包含 输入和输出寄存器,最 高工作频率一般由寄存 器到寄存器延迟决定。 21.优先状态机的典型 结构与规则时序逻辑电 路的典型结构相同,区 别在于瓷胎逻辑的复杂 程度,优先状态机的次 态逻辑相对复杂。 22.寄存器是存储二级 制数码的时序电路部 件,具有接受和寄存二 进制数码的功能。 计数器是用来累积和寄 存输入脉冲个数的时序 逻辑部件,可计数,还 可以对某个频率的时钟 脉冲进行分频。构成时 间分配器或时序发生器 对数字系统进行定时, 程序控制操作,执行数 字计算。 24.如何避免数字电路 中的冒险现象 竞争与冒险是数字电路 中存在的一种现象,竞 争:在组合电路中,信 号经由不同的途径到达 某一汇合点的时间有先 后,。冒险:由于竞争而 引起的电路输出发生瞬 间错误现象,表现为输 出端出现原设计中没有 的窄脉冲,常称之为毛 刺。 竞争-冒险现象对数字 电路工作的可靠性有影 响,消除竞争-冒险现象 主要采用引入封锁脉 冲,引入选通脉冲,接 滤波电容或修改程序设 计,增加选通电路,增 加输出滤波的方法。

VHDL硬件描述语言实验报告

硬件描述语言实验附录 姓名:xxx 学号:xxx 指导教师:xxx 目录 硬件描述语言实验附录 (1) 实验1.三输入与门电路实验 (2) 实验2. 三—八译码器实验 (3) 实验3. D触发器实验 (4) 实验4. 分频器实验 (5) 实验5. 状态机实验 (8)

实验1.三输入与门电路实验 --三输入与门电路threeinput --姓名:王定 --学号:1306034248 --中北大学 LIBRARY IEEE; --调用库 USE IEEE.STD_LOGIC_1164.ALL;--库文件 -------------------------------------------------------------- ENTITY threeinput IS --定义实体名,其名称必须与VHDL文本文件名称相同PORT( A: IN STD_LOGIC; --输入端口,时钟输入 B: IN STD_LOGIC; --输入端口,个位写入使能 C: IN STD_LOGIC; --输入端口,十位写入使能 CO: OUT STD_LOGIC); --输出端口,溢出标志 END ENTITY threeinput; --结束端口定义 -------------------------------------------------------------- ARCHITECTURE RTL OF threeinput IS--定义结构体 BEGIN PROCESS(A,B,C) IS --开始,必须带上 BEGIN CO<=A AND B AND C ; END PROCESS; END ARCHITECTURE RTL; --结束结构体 表1. 三输入与门电路VHDL实验代码 图1. 三输入与门电路仿真波形图,A,B,C输入,CO输出

硬件描述语言HDL的现状与发展

硬件描述语言HDL的现状与发展 摘要:从数字系统设计的性质出发,结合目前迅速发展的芯片系统,比较、研究各种硬件描述语言;详细阐述各种语言的发展历史、体系结构和设计方法;探讨未来硬件描述语言的发展趋势,同时针对国内EDA基础薄弱的现状,在硬件描述语言方面作了一些有益的思考。 关键词:ASIC 硬件描述语言HDL Verilog HDL VHDL SystemC Superlog 芯片系统SoC 引言 硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。 目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。 硬件描述语言HDL的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE 标准。 现在,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像Superlog、SystemC、Cynlib C++等等。究竟选择哪种语言进行设计,整个业界正在进行激烈的讨论。因此,完全有必要在这方面作一些比较研究,为EDA设计做一些有意义的工作,也为发展我们未来的芯片设计技术打好基础。 1 目前HDL发展状况 目前,硬件描述语言可谓是百花齐放,有VHDL、Superlog、Verilog、SystemC、Cynlib C++、C Level等等。虽然各种语言各有所长,但业界对到底使用哪一种语言进行设计,却莫衷一是,难有定论。 而比较一致的意见是,HDL和C/C++语言在设计流程中实现级和系统级都具有各自的用武之地。问题出现在系统级和实现级相连接的地方:什么时候将使用中的一种语言停下来,而开始使用另外一种语言?或者干脆就直接使用一种语言?现在看来得出结论仍为时过早。 在2001年举行的国际HDL会议上,与会者就使用何种设计语言展开了生动、激烈的辩论。最后,与会者投票表决:如果要启动一个芯片设计项目,他们愿意选择哪种方案?结果,仅有2

硬件描述语言08-09B卷标准答案

2008/2009 学年第一学期末考试试题答案及评分标准 (B卷) 硬件描述语言及器件 使用班级:06060241/06060242 一、填空题(30分,每空格1分) 1、试举出两种可编程逻辑器件 CPLD 、 FPGA 。 2、VHDL程序的基本结构至少应包括实体、结构体两部分和对 库的引用声明。 3、1_Digital标识符合法吗?否, \12 @ +\ 呢?合法。 4、在VHDL的常用对象中,信号、变量可以被多次赋予不同的值, 常量只能在定义时赋值。 5、实体的端口模式用来说明数据、信号通过该端口的传输方向,端口模式有 in 、 Out 、 inout 、 buffer 。 6、VHDL语言中std_logic类型取值‘Z’表示高阻,取值‘X’表示不确定。 7、整型对象的范围约束通常用 range 关键词,位矢量用 downto/to 关键词。 8、位类型的初始化采用(字符/字符串)字符、位矢量用字符串。 9、进程必须位于结构体内部,变量必须定义于进程/包/子程序内部。 10、并置运算符 & 的功能是把多个位或位向量合并为一个位向量。 11、进程执行的机制是敏感信号发生跳变。 12、判断CLK信号上升沿到达的语句是 if clk’event and clk = ‘1’ then . 13、 IF 语句各条件间具有不同的优先级。

14、任何时序电路都以时钟为驱动信号,时序电路只是在时钟信号的边沿到来时, 其状态才发生改变。 15、 Moore 状态机输出只依赖于器件的当前状态,与输入信号无关。 二、判断对错并改正(12分,每小题3分) 1、CONSTANT T2:std_logic <= ’0’; (错)改正:把<= 换为:= 。 2、若某变量被定义为数值型变量,未赋初始值时默认值为‘0’。 (错)改正:把‘0’的单引号去掉。 3、在结构体中定义一个全局变量(V ARIABLES),可以在所有进程中使用。 (错)改正:“变量(V ARIABLES)”改为“信号”。 4、语句 type wr is (wr0,wr1,wr2,wr3,wr4,wr5); 定义了一个状态机变量wr, 可以直接对wr赋值。 (错)改正:语句 type wr is (wr0,wr1,wr2,wr3,wr4,wr5); 定义了一个状态机类型wr,需要定义一个该类型的对象,才可以对该对象赋值。 三、简答(8分,每小题4分) 1、简述如何利用计数器精确控制时序。 ?只要知道晶振频率f,即可知道周期T=1/f; ?使用一个计数器,可以通过计数值n,精确知道当计数值为n时消耗的时间t=nT; ?上例中以n为控制条件,可以控制其它信号在某时刻变高,某时刻变低,从而产生精 确时序; 例如:

硬件描述语言实验报告

《硬件描述语言》实验报告 学院: 学号: 姓名: 专业: 实验时间: 实验地点: 指导教师: 年月

实验一简单组合逻辑设计 一、实验目的及要求: 1.掌握基本组合逻辑电路的实现方法。 2.初步了解两种基本组合逻辑电路的生成方法。 3.学习测试模块的编写。 4.通过综合和布局布线了解不同层次仿真的物理意义。 二、实验设备及要求 装有modesim和synplify的电脑一台 三、实验内容与步骤 1.实验内容: 本次实验采用Verilog HDL语言设计一个可综合的数据比较器,其功能是比较数据a与数据b的结果,如果两个数据相同,则输出结果1,否则给出结果0;并写出测试模型,使其进行比较全面的测试。 2.实验步骤: (1)建立工程文件,编写模块源码和测试模块,要求测试模块对源文件进行比较全面的测试; (2)编译源码和测试模块,用测试模块对源文件进行测试,并进行仿真;(3)观察综合后生成的文件和源文件的不同点和相同点。 (4)综合时采用不同的FPGA器件,观察综合后的结果有什么不同。 四、实验结果与数据处理: 1.RTL图及仿真后波形图:

2.综合后的电路图: 五、分析与讨论: 1.课本练习一的测试方法二中,第二个initial块有什么用?它与第一个initial块有什么关系? 答:测试方法二中的第二个initial用来暂停仿真以便观察仿真波形,它与第一个initial是并行关系 2.如果在第二个initial块中,没有写出#10000或者$stop,仿真会如何进行?答:如果没有写#10000,仿真会直接停止,没有$stop,仿真不会结束。

3.比较两种测试方法,哪一种更全面? 答:第二种测试方法更全面,测试了更多种的变换的情况。 实验二简单分频时序逻辑电路的设计 一、实验目的及要求: 1.掌握条件语句在简单时序模块设计中的使用; 2.掌握verilog语句在简单时序模块设计中的使用; 3.学习在Verilog模块中应用计数器; 4.学习测试模块的编写、综合和不同层次的仿真。 二、实验设备及要求 装有modesim和synplify的电脑一台 三、实验内容与步骤: 1.实验内容: (1)使用always块和@(posedge clk)或@(negedge clk)的结构来表述时序逻辑,设计1/2分频的可综合模型。得到如下波形图: (2)对模块进行RTL级仿真、综合后门级仿真,布局布线仿真; 2.实验步骤: (1)建立工程文件,编写模块源码和测试模块,要求测试模块能对源文件进行比较全面的测试。 (2)编译源码和测试模块,用测试模块对源文件进行测试,并综合仿真。得到波形图。 (3)观察综合后生成的文件和源文件的不同点和相同点。

蔡觉平老师西电Verilog-HDL上机大作业(硬件描述语言)-微电子学院

《Verilog HDL 数字集成电路设计原理与应用》上机作业 班级 学号 姓名 题目1:数字集成电路的verilog HDL 描述与仿真 要求: (1) 学习使用Modelsim 设计和仿真软件; (2) 练习教材7.2.1中的例子; (3) 掌握设计代码和测试代码的编写; (4) 掌握测试仿真流程; 解答: 题目2:简述begin-end 语句块和fork-join 语句块的区别,并写出下面信号 对应的程序代码 ******* ******* ******* -J /l :i -3fcEncli_dnillr?gli. -* iai "12] 丄11] J 代刪ten 由」可Itr 手 rlntberidi_d-rillregii.. min * 11] &:o * 12] &:o 51Q SHO I _ i_r JTI_ -Un JTLJ 1J1D nnn 口 □ 口 n n r, i nr n_r H I ooa !j 6ic rLTLTLn 一1厂厂厂 o ■* AeEtbsndh^E^iftr^E * Afr3tben[iT_sniHTejs._ a As3tbehi±]_g*iHTeg3._ J AestbenctLF ilb egk … .noF 览 EQZBl n. EM

解答: (1)begin-end语句块和fork-join 语句块的区别: 1、执行顺序:begin-end语句块按照语句顺序执行,fork-join 语句块所有语句均在同一时刻执行; 2、语句前面延迟时间的意义:beg in-e nd语句块为相对于前一条语句执行结束的时间,fork-joi n 语句块为相对于并行语句块启动的时间; 3、起始时间:begin-end语句块为首句开始执行的时间,fork-join 语句块为转入并行语句块的时间; 4、结束时间:begin-end语句块为最后一条语句执行结束的时间,forkjoin 语句块为执行时间最长的那条语句执行结束的时间; 5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号 的作用下,沿数据通道中各级寄存器之间的传送过程。fork-join 语句块为电 路上电后,各电路模块同时开始工作的过程。 (2)程序代码: Beg in-end 语句: module in itial_tb1 ; reg A,B; in itial beg in A=0;B=1; #10 A=1;B=0; #10 B=1; #10 A=0; #10 B=0; #10 A=1;B=1; end en dmodule Frk-joi n 语句: module wave_tb2; reg A,B; parameter T=10; in itial fork A=0;B=1; #T A=1;B=0; #(2*T) B=1; #(3*T) A=0; #(4*T) B=0; #(5*T) A=1;B=1; joi n en dmodule 题目3.分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图 outO outl out2

《硬件描述语言》考试说明

《硬件描述语言》课程的测试说明 教务处: 使用电子技术2009-1班开设的《硬件描述语言》是一门专业必修技术课,其目的是培养学生了解现代电子技术方法,掌握利用VHDL语言、EDA工具和FPGA/CPLD芯片,进行数字集成电路的设计能力,对利用硬件描述语言(HDL)进行集成电路设计的能力要求很高。根据教学改革的需要,为培养学生实际分析和设计能力,拟定了该门课程考核方式如下: 一、根据工程化设计思路,由学生个人或以团队形式(团队不超过三 人组成,但必须注明个人完成的VHDL程序设计的内容)完成VHDL程序设计。 二、设计题目采用教师指定和学生自选相结合的方式,相同题目重复 度不得超过2组。 三、完成要求: 1.设计能上机运行通过并得到正确的结果,否则计0分。 2.在教学资源网站提交课程设计报告,其要求如下: ●课程设计报告的基本要素 ①设计题目 ②分析过程 ③设计过程 ④总结 ●课程设计报告的格式

采用统一的封面设计(附后)。纸张为A4,页边距上下各2.5cm,左右各3.17 cm;正文采用楷体_GB2312、四号字,标题字体采用黑体、四号;行距为单倍行距,首行2个字符。 三、评分方式:根据平时作业占10%,平时出勤占10%,实验占20%, 课程设计占60%,综合进行评分。 四、必须在规定的时间内上交,否则按缺考处理,以0分计。 五、如果本次测试不合格,仍采用上述方法进行补考。 任课教师:教研室主任:系主任:年月日年月日年月日 参考题目 A组(满分为70分): 1、只读存储器(ROM) 设计一个32字节的只读存储器(ROM),该系统由数据存储单元和数据输出单元构成,要求数据输出单元的EN端为“1”时,输出数据;为“0”时,输出为高阻状态。 2、序列计数器 序列计数器的基本功能是对一个8bit宽二进制数中的连续为0的个数进行统计。具体的规则是:在单个时钟脉冲时间内,完成对8bit二进制数的统计,并且要求在整个序列中只能有一串连0出现,即8bit中0是相邻的。此时,我们认为输出有效,并且输出连0的个数;否则认为无效,并且连0计数器清0,同时输出错误指示信号。这里规定全1的序列为有效序列,其连0的个数为0个。例如:

相关主题
文本预览
相关文档 最新文档