文档库 最新最全的文档下载
当前位置:文档库 › 硬件描述语言与EDA课程设计

硬件描述语言与EDA课程设计

硬件描述语言与EDA课程设计
硬件描述语言与EDA课程设计

广东工业大学课程设计任务书

题目名称硬件描述语言与EDA技术实践

学生学院材料与能源学院

专业班级10微电子学(2)班

姓名何俊鑫

学号3110007483

一、课程设计的内容与要求

1.系统功能分析,分模块层次化设计;

2.实现系统功能的方案设计;

3.编写各功能模块VHDL语言程序;

4.对各功能模块进行编译、综合、仿真和验证;

5.顶层文件设计,可用VHDL语言设计,也可以用原理图设计;

6.整个系统进行编译、综合、仿真和验证;

7.在CPLD/FPGA实验开发系统试验箱上进行硬件验证;

8.按所布置的题目要求,每一位学生独立完成全过程。

二、课程设计应完成的工作

1.所要求设计内容的全部工作;

2.按设计指导书要求提交一份报告书;

3.提交电子版的设计全部内容:工程目录文件夹中的全部内容,报告书

三、课程设计进程安排

四、应收集的资料及主要参考文献

1.陈先朝,硬件描述语言与EDA技术实践指导书,2013年3月

2.曹昕燕等编著,EDA技术实验与课程设计,清华大学出版社,2006年5

3.刘欲晓等编著,EDA技术与VHDL电路开发应用实践,电子工业出版社,

2009年4月

4.刘昌华等编著,数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双

剑合璧,国防工业出版社,2009年

5.刘江海主编,EDA技术课程设计,华中科技大学出版社,2009年1月

发出任务书日期: 2013年6月 17日指导教师签名:

计划完成日期: 2013年6月 21日基层教学单位责任人签章:

主管院长签章:

目录

1.系统功能要求与分析 (4)

1.1系统功能要求 (4)

1.2电路工作原理及方案设计 (4)

2.单元电路设计 (5)

2.1测频控制信号发生器clkdiv (5)

2.2 十进制计数器cnt10 (6)

2.3锁存器reg4b (8)

2.4数码动态管扫描与译码器bit (9)

3.简易数字频率计顶层原理图 (12)

4.硬件验证情况 (13)

5.遇到的问题及解决方法 (13)

6.总结与体会 (13)

7.参考文献 (14)

1.系统功能要求与分析

1.1 系统功能要求

设计一个简易的6位十进制频率计,可测量的信号频率范围从1Hz到999999Hz,并显示被测频率值。

1.2 电路工作原理及方案设计

总体框图:

1、测频控制信号发生器clkdiv:输入端clk收到1Hz信号后,其输出使能端en控制各个十进制计数器cnt10的使能端en,clr控制各个计数器cnt10的清零,load控制锁存器内数据的输出。

2、十进制计数器cnt10:使能输入端en,用于锁定计数值。当en为高电平"1"时计数允许计数,低电平"0"时禁止计数。多位十进制计数器时,最低位的计数器的clk端输入被测信号,各计数器的进位输出端c10将信号输到下一位十进制计数器cnt10的输入端clk,最高位十进制计数器cnt10的进位输出端c10不处理。各个计数器的计数结果由各自的q[3..0]输出到锁存器。

3、锁存器reg4b:将各个计数器输出的4 位bcd码存在于此模块的输入口din[3..0],共有对应6个计数器的输入端din[3..0]。在信号load的上升沿后计数结果即被锁存到寄存器reg4b的内部,并由reg4b的输出端dout[3..0]输出,设置锁存器可使数码管上显示的数据稳定,不会由于周期性的清零信号而不断闪烁。

4、数码动态管扫描与译码器bit:输入端dout[3..0]将接收bcd码信号,

译码后输出端led[7..0]输出8位7段数码管信号,其中输出的第8位均为低电平"0"可以使六个数码管的小数点不显示。经译码器的处理输出后数码管显示相应的数值。输出端com[7..0]是数码管位选控制端口,其中只用到0—5这6个数码管,第7第8位一直置位高电平"1",以使其一直处于熄灭状态。

2.单元电路设计

2.1测频控制信号发生器clkdiv

时基产生与测频时序控制电路主要产生计数允许信号en、清零信号clr 和锁存信号load。测频控制信号发生器clkdiv VHDL程序如下:LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY clkdiv IS

PORT(clk:IN STD_LOGIC;

clr:OUT STD_LOGIC;

en:OUT STD_LOGIC;

load:OUT STD_LOGIC);

END ENTITY clkdiv;

ARCHITECTURE arc_clkdiv OF clkdiv IS

SIGNAL clk_div2:STD_LOGIC;

BEGIN

PROCESS(clk)

BEGIN

IF clk'EVENT AND clk='1' THEN

clk_div2<=NOT clk_div2;

END IF;

END PROCESS;

PROCESS(clk,clk_div2)

BEGIN

IF clk='0' AND clk_div2='0' THEN

clr<='1'; ELSE clr<='0';

END IF;

END PROCESS;

load<=NOT clk_div2;

en<=clk_div2;

END ARCHITECTURE arc_clkdiv;

其仿真波形如下图所示:

图2 测频控制信号发生器clkdiv仿真波形

在项目编译仿真成功后,通过Creat Symbol Files for Current File选项生成clkdiv.bsf用于顶层设计。如下图所示:

图3 clkdiv元件符号

2.2 十进制计数器cnt10

十进制计数器在测频控制信号发生器的控制下产生十位进位c10和输出个位数q[3..0]。其VHDL程序如下所示:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY cnt10 IS

PORT(clk,clr,en:IN STD_LOGIC;

q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);

c10:OUT STD_LOGIC);

END ENTITY cnt10;

ARCHITECTURE one OF cnt10 IS

BEGIN

PROCESS(clk,clr)

BEGIN

IF clr='1' THEN q<="0000";

ELSIF clk'EVENT AND clk='1' THEN

IF en='1' THEN

IF q<9 THEN q<=q+1;

ELSE q<="0000";

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(q)

BEGIN

IF q="1001" THEN c10<='1';

ELSE c10<='0';

END IF;

END PROCESS;

END ARCHITECTURE one;

其仿真波形如下图所示:

图4十进制计数器cnt10仿真波形

在项目编译仿真成功后,通过Creat Symbol Files for Current File选项生成cnt10.bsf用于顶层设计。如下图所示:

图5 cnt10元件符号

2.3锁存器reg4b

在信号load的上升沿后计数结果即被锁存到寄存器reg4b的内部,并由reg4b的输出端dout[3..0]输出。其VHDL程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY reg4b IS

PORT(load:IN STD_LOGIC;

din1,din2,din3,din4,din5,din6:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

dout1,dout2,dout3,dout4,dout5,dout6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END ENTITY reg4b;

ARCHITECTURE arc_reg4b OF reg4b IS

BEGIN

PROCESS(load)

BEGIN

IF load'EVENT AND load='1' THEN

dout1<=din1;

dout2<=din2;

dout3<=din3;

dout4<=din4;

dout5<=din5;

dout6<=din6;

END IF;

END PROCESS;

END ARCHITECTURE arc_reg4b;

其仿真波形如下图所示:

图6 锁存器reg4b 仿真波形

在项目编译仿真成功后,通过Creat Symbol Files for Current File选项生成reg4b.bsf用于顶层设计。如下图所示:

图7 锁存器reg4b元件符号

2.4数码动态管扫描与译码器bit

输入端dout[3..0]将接收bcd码信号,译码后输出端led[7..0]输出,其中输出端com[7..0]为数码管位选端。其VHDL程序如下所示:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY bit IS

PORT(clk:IN STD_LOGIC;

vga:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

dout1,dout2,dout3,dout4,dout5,dout6:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

com:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

led:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END ENTITY bit;

ARCHITECTURE one OF bit IS

SIGNAL sg:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL cnt6:STD_LOGIC_VECTOR(2 DOWNTO 0);

SIGNAL a:INTEGER RANGE 0 TO 5;

BEGIN

vga<="0010";

p1:PROCESS(cnt6)

BEGIN

CASE cnt6 IS

WHEN "000"=>com<="11111110";a<=0;

WHEN "001"=>com<="11111101";a<=1;

WHEN "010"=>com<="11111011";a<=2;

WHEN "011"=>com<="11110111";a<=3;

WHEN "100"=>com<="11101111";a<=4;

WHEN "101"=>com<="11011111";a<=5;

WHEN OTHERS=>com<="11111111";

END CASE;

END PROCESS;

p2:PROCESS(clk)

BEGIN

IF clk'EVENT AND clk='1' THEN

IF cnt6<6 THEN cnt6<=cnt6+1;

ELSE cnt6<="000";

END IF;

END IF;

END PROCESS;

p3:PROCESS(a)

BEGIN

CASE a IS

WHEN 0=>sg<=dout1(3 DOWNTO 0);

WHEN 1=>sg<=dout2(3 DOWNTO 0);

WHEN 2=>sg<=dout3(3 DOWNTO 0);

WHEN 3=>sg<=dout4(3 DOWNTO 0);

WHEN 4=>sg<=dout5(3 DOWNTO 0);

WHEN 5=>sg<=dout6(3 DOWNTO 0);

WHEN OTHERS=>NULL;

END CASE;

END PROCESS;

WITH sg SELECT

led<="00111111" WHEN "0000",

"00000110" WHEN "0001",

"01011011" WHEN "0010",

"01001111" WHEN "0011",

"01100110" WHEN "0100",

"01101101" WHEN "0101",

"01111101" WHEN "0110",

"00000111" WHEN "0111",

"01111111" WHEN "1000",

"01101111" WHEN "1001",

"00000000" WHEN OTHERS;

END ARCHITECTURE one;

其仿真波形如下图所示:

图8 数码动态管扫描与译码器bit 仿真波形

在项目编译仿真成功后,通过Creat Symbol Files for Current File选项生成bit.bsf用于顶层设计。如下图所示:

图9 数码动态管扫描与译码器bit元件符号

3.简易数字频率计顶层原理图

调用各子模块所生成的元件和输入输出端口,使用连接线和总线连接各级电路,组成简易数字频率计顶层原理图,如下图所示:

图10 简易数字频率计顶层原理图

简易数字频率计的总仿真波形如下图所示:(clkinput输入5000Hz频率)

图11 简易数字频率计顶层原理图仿真波形

顶层原理图的仿真分析:基准时钟信号clk1Hz输入端输入1Hz脉冲信号,数码管动态扫描时钟输入端clk100KHz输入100KHz脉冲信号,测试脉冲输入端输入5000Hz的脉冲信号,从仿真结果可以看出,com位选为数码管第四位时,led数码管段选输出为“01101101”,为数字5,剩余的数码管均显示“0”,也就是说,

数码管最后的读数为005000,符合理论输出结果,说明顶层原理图仿真成功,VHDL程序符合设计要求。

4.硬件验证情况

在CPLD/FPGA实践系统上下载了sof格式的文件后,通过测试不同的输入频率,如1Hz,100Hz,5KHz,100KHz等等,均成功显示与数码管上,此次课程设计符合要求。

5.遇到的问题及解决方法

在设计输出1S的基准时钟信号时曾遇到不少困难,一开始是选择了100Hz 输入,但几次仿真和修改均显示出存在一些小问题,如输入测试频率为5000Hz 时,输出结果却是5050Hz。改变输入基准时钟信号为1Hz,经二分频输出1S高电平,问题得到解决。其它模块鉴于书本上已有较为标准的VHDL程序参考,并未遇到太大的问题。

6.总结与体会

课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。这次课程设计的目的,就是用所学的知识设计一个实用的系统,熟悉QUARTUS II软件使用,提高EDA技术的实际应用能力。

查阅了一定的资料后,数字频率计的设计思路慢慢清晰,频率计的各个子模块的VHDL程序也一个一个的设计了出来,由于这次课程设计只有一周的时间,数字频率计的功能均只按照要求来设计,并没有加入更多功能。

我真正遇到的困难是在CPLD/FPGA实践平台上调试时,几乎花了一天的时间,期间也曾怀疑过是否仿真和实际有差别,更改过好几次程序后并未能解决问题,最后把问题的缘由锁定在硬件问题上,幸运的是,在几乎试过EL-EDA_VI 型教学实践平台的所有电路箱后,终于在一台日期显示是20111754的平台上得到了成功的实验结果。我的分析是,有可能是某些平台的1Hz脉冲信号出了问题,

导致计数器不计数。这次的排错过程无疑让我了解到做实验是需要耐心和毅力的。

通过这次课程设计,不仅让我了解怎么去设计程序,更重要的还让我学会了怎么样和别人合作。课程设计虽然有一定的难度,但只要不断努力,排除各种错误,最后一定能取得成功。

7.参考文献

1.《硬件描述语言与EDA技术实践指导书》陈先朝2013年3月

2.《EDA技术实验与课程设计》曹昕燕等编著,清华大学出版社,2006年

5月

3.《EDA技术与VHDL电路开发应用实践》刘欲晓等编著,电子工业出版

2009年4月

4.《数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双剑合璧》刘昌

华等编著,国防工业出版社,2009年

5. 《EDA技术课程设计》刘江海主编,华中科技大学出版社,2009年1 月

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

组合逻辑电路实验(一)实验报告 一.实验名称: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;

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.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

硬件描述语言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

数字电子技术实验报告_基于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)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

硬件描述语言范例

硬件描述语言语言设计实例 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型有限状态机的设计实例

硬件描述语言及FPGA设计复习要点

《硬件描述语言及FPGA设计》复习要点: 一、名词解释 ⑴设计方法:自顶向下和自底向上,以自顶向下为主要设计。 综合:指的是将较高级抽象层次的设计描述自动转化外较低层次的描述过程。 1.EDA :电子设计自动化 2.HDL :硬件描述语言 SoC :系统芯片 4.ASIC :专用集成电路 5.PLD :可编程逻辑器件 6.CPLD :复杂可编程逻辑器件 7.FPGA :现场可编程门阵列 8.LUT :查找表 9.JTAG :联合测试行动组 10.ISP :在系统编程 11.IP核:完成某种功能的设计模块 12.逻辑综合:将设计者在EDA平台上编辑输入的HDL文本、原理图或状态图描述,依据给定的硬件结构和约束控制条件进行编译、优化和转换,最终获得门级电路甚至更底层的电路描述网表文件的过程。 13.设计输入:将设计者所设计的电路以开发软件要求的某种形式表达出来,并输入到相应软件中的过程。 14.下载:把适配后生成的编程文件装入到PLD器件中的过程 15.FSM: 有限状态机 16.UDP:用户自定义 17.NS:次态 18.OL:输出逻辑 二、填空 1.EDA就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。 2.在数字电路设计过程中,综合是将软件转化为硬件电路的关键步骤,是文字描述与硬件实现的一座桥梁。 3.通常,将对CPLD的下载称为编程,对FPGA中的SRAM进行直接下载的方式称配置。 4.仿真时是否考虑硬件延时分类,可分为功能仿真和时序仿真。 5.IP核主要包括硬核、固核和软核。 6.当前最流行的并且成为IEEE标准的硬件描述语言包括Verilog HDL 和VHDL 。7.当前EDA设计中普遍采用的方法是:自顶向下。

硬件描述语言与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);

双口RAM应用实例

双端口RAM在高速数据采集中的应用 利用传统方法设计的高速数据采集系统由于集成度低、电路复杂,高速运行电路干扰大,电路可靠性低,难以满足高速数据采集工作的要求。应用FPGA可以把数据采集电路中的数据缓存、控制时序逻辑、地址译码、总线接口等电路全部集成进一片芯片中,高集成性增强了系统的稳定性,为高速数据采集提供了理想的解决方案。下面以一个高速数据采集系统为例介绍双端口RAM的应用。 该系统要求实现对频率为5MHz的信号进行采样,系统的计算处理需要对信号进行波形分析,信号采样时间为25μs。根据设计要求,为保证采样波形不失真,A/D采样频率用80MHz,采样精度为8位数据宽度。计算得出存储容量需要2K字节。其系统结构框图如图3所示,图4给出了具体电路连接图。

根据设计要求,双端口RAM的LPM_WIDTH参数设置为8,LPM_WIDTHAD 参数设置为11(211=2048),使用读写使能端及读写时钟。ADCLK、WRCLK和地址发生器的计数频率为80MHz。 A/D转换值对双端口RAM的写时序为顺序写方式,每完成一次A/D转换,存储一次数据,地址加1指向下一单元,因此写地址发生器(RAM_CONTROL)采用递增计数器实现,计数频率与ADCLK、WRCLK一致以保证数据写入时序的正确性。写操作时序由地址和时钟发生器、A/D转换时钟和双端口RAM的写时钟产生。停止采样时AD_STOP有效,写地址发生器停止计数,同时停止对RAM的写操作。将地址发生器的计数值接至DSP总线可以获取采样的首尾指针。地址发生器单元一般用(VHDL)语言编程实现,然后生成符号文件 RAM_CONTROL在上层文件调用。其部分VHDL语言程序如下: 对双端口RAM的读操作采用存储器映像方式,其读出端口接DSP的外扩RAM 总线,DSP可随机读取双端口RAM的任一单元数据,以方便波形分析。由于

范例-软件设计说明(详细部分).

软件设计说明

目录 1范围 (1) 1.1标识 (1) 1.2系统概述 (1) 1.3文档概述 (1) 2引用文档 (1) 3CSCI 级设计决策 (1) 4CSCI 体系结构设计 (2) 4.1CSCI部件 (2) 4.2执行方案 (3) 4.3接口设计 (3) 4.3.1接口标识和接口图 (3) 4.3.x (接口的项目唯一标识符) (4) 5CSCI 详细设计 (6) 5.X (软件单元的项目唯一标识符,或者一组软件单元的标志符) (6) 6需求可追踪性 (9) 7注解 (11) 附录A (11)

软件设计说明 1范围 1.1标识 要求:本节应包含这个文档所适用的系统和软件的完全标识,(若适用)应包括标识号、名称、缩略名、版本号及发布号。 1.2系统概述 要求: 1)本节主要描述本文档适用的系统和软件的用途; 2)概述系统开发、运行和维护的历史; 3)标识项目的投资方、需方、用户、开发方和保障机构; 4)标识当前和计划的运行现场; 5)列出其它有关文档。 1.3文档概述 本节应概述本文档的用途和内容,描述与它的使用有关的保密性或私密性考虑。 2引用文档 列出引用的所有文档,包括文档的编号、标题、修订版本和日期。 3CSCI 级设计决策 要求:本章应根据需要分节给出CSCI 级设计决策,即CSCI 行为设计的决策(忽略其内部实现,从用户角度出发描述系统将怎样运转以满足需求)和其它影响组成该CSCI 的软件单元的选择与设计的决策。如果在需求中所有这些决策是明确的,或者这些决策要推迟到CSCI 的软件单元的设计时指出,则本章应如实陈述。 针对关键性需求(例如对安全性、保密性、私密性等需求)作出的设计决策,应在专门的章节中加以叙述。 CSCI 级设计决策的例子如下: 1)关于CSCI 将接收的输入和将产生的输出的设计决策,包括与其它系统、HWCI、CSCI 和用户的接口(本文档的4.3.x 节指出本说明要考虑的主题); 2)有关响应每个输入或条件的CSCI 行为的设计决策,包括CSCI 要执行的动作、响应时间和其它性能特性,模型化的物理系统的说明,选定的方程式/算法/规则,以及对不允许的输入或条件进行的处理; 3)有关数据库/数据文件如何呈现给用户的设计决策(本文档的4.3.x 节标识了本说明

硬件描述语言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票或3票赞成使用systemc、cynlib和c level 设计;而superlog和verilog各自获得了约20票。至于以后会是什么情况,连会议主持人john cooley也明确表示:“5年后,谁也不知道这个星球会发生什么事情。”各方人士各持己见:为verilog辩护者认为,开发一种新的设计语言是一种浪费;为systemc辩护者认为,系统级芯片soc快速增长的复杂性需要新的设计方法;c语言的赞扬者认为,verilog 是硬件设计的汇编语言,而编程的标准很快就会是高级语言,cynlib c++是最佳的选择,它速度快、代码精简;superlog的捍卫者认为,superlog是verilog的扩展,可以在整个设计流程中仅提供一种语言和一个仿真器,与现有的方法兼容,是一种进化,而不是一场革命。当然,以上所有的讨论都没有提及模拟设计。如果想设计带有模拟电路的芯片,硬件描述语言必须有模拟扩展部分,像verilog hdl-a,既要求能够描述门级开关级,又要求具有描述物理特性的能力。 2 几种代表性的hdl语言2.1 vhdl 早在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行vhdl的开发。1987年,由ieee(institute of electrical and electro- nics engineers)将vhdl制定为标准。参考手册为ieee vhdl 语言参考手册标准草案1076/b版,于1987年批准,称为ieee 1076-1987。应当注意,起初vhdl只是作为系统规范的一个标准,而不是为设计而制定的。第二个版本是在1993年制定

VHDL语言程序设计中INOUT端口的使用与实例分析

目录 1、双向电路的基本格式 (2) 2、控制条件 (3) 2.1、双向信号作一个信号的输入,作另一信号的输出 (3) 2.2、双向信号既做输出又做输出 (4) 3、实例说明-INOUT端口仿真暨三态门仿真 (6) 3.1、三态门的原理与仿真三态总线 (6) 3.3、VHDL 的三态门实现与仿真 (7) 参考文献 (12)

VHDL语言程序设计中INOUT端口的使用与实例分析 摘要:VHDL是由美国国防部为描述电子电路所开发的一种语言,其全称为(Very High Speed Integrated Circuit) Hardware Description Language。与另外一门硬件描述语言Verilog HDL相比,VHDL 更善于描述高层的一些设计,包括系统级(算法、数据通路、控制)和行为级(寄存器传输级),而且VHDL 具有设计重用、大型设计能力、可读性强、易于编译等优点逐渐受到硬件设计者的青睐。但是,VHDL是一门语法相当严格的语言,易学性差,特别是对于刚开始接触VHDL的设计者而言,经常会因某些小细节处理不当导致综合无法通过。VHDL共定义了5种类型的端口,分别是In, Out,Inout, Buffer及Linkage,实际设计时只会用到前四种。本文主要讨论讨论如何正确使用INOUT端口。 关键词:VHDL;INOUT端口;三态门原理 1、双向电路的基本格式 工程应用中,双向电路是设计者不得不面对的问题.在实际应用中,数据总线往往是双向的.如何正确处理数据总线是进行时序逻辑电路设计的基础.在程序设计过程中,关键技术在于:实体部分必须对端口属性进行申明,端口属性必须为inout类型,在构造体需要对输出信号进行有条件的高阻控制.在双向电路的处理问题上,常用的处理方式有两种,在介绍双向电路的处理方式之前,先看看双向电路的基本格式: ENTITY bidir_pin IS ( bidir : INOUT std_logic; oe, clk, from_core : IN std_logic; to_core : OUT std_logic; …… END bidir_pin; ARCHITECTURE behavior OF bidir_pin IS BEGIN

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输出

Verilog语言基础教程

Verilog HDL Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象 设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。 Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。 =============================== 中文版Verilog HDL简明教程:第1章简介 Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。 Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。 历史 Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模

硬件描述语言期末复习整理

硬件描述语言期末复习整理 1、EDA:Electronic Design Automation 现代电子设计技术的核心是EDA(Electronic Design Automation)技术。 EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上完成电子系统的设计工作。 2、20世纪90年代以来,微电子工艺有了惊人的发展,工艺水平已经达到了深亚微米级(通常把0.8-0.35um称为亚微米,0.25um及其以下称为深亚微米) 3、用EDA技术设计电路可以分为不同的技术环节,每一个环节中必须有对应的软件包或专用的EDA工具独立处理。 4、EDA工具大致可以分为设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)以及下载器等5个模块。 一般的设计输入编辑器都支持图形输入和HDL文本输入 图形输入通常包括原理图输入、状态图输入和波形图输入三种常用方法。 5、在EDA技术中仿真的地位非常重要,行为模型的表达、电子系统的建模、逻辑电路的验证以及门级系统的测试,每一步都离不开仿真器的模拟检测。 在EDA发展的初期,快速地进行电路逻辑仿真是当时的核心问题,即使在现在,各个环节的仿真仍然是整个EDA设计流程中最重要、最耗时的一个步骤。因此,仿真器的仿真速度、仿真的准确性和易用性成为衡量仿真器的重要指标。 6、硬件描述语言诞生的初衷是用于设计逻辑电路的建模和仿真 HDL综合器是将硬件描述语言转化为硬件电路的重要工具。 7、HDL综合器的输出文件一般是网表文件,是一种用于电路设计数据交换和交流的工业标准化格式的文件,或是直接用硬件描述语言HDL表达的标准格式的网表文件,或是对应FPGA/CPLD器件厂商的网表文件。 8、电路网表(逻辑图)由元件名N、模型M、输入端信号PI、输出端信号PO四部分组成,是唯一确定电路连接关系的数据结构。即:E=(N,M,PI,PO) 9、常用的编程语言 C、Pascal、Fortran、Basic或汇编语言-算法研究 硬件描述语言-设计和制造硬件逻辑专用电路 10、实时系统不能采用通用计算机系统,自行设计非常轻便小巧的高速专用硬件系统来完成该任务。 11、FPGA-用高密度的FPGA(从几万门、几十万门到几百万门)来构成完成算法所需的电路系统是一种较好的办法。 FPGA是一种通用的器件,它的基本结构决定了对某一种特殊应用,性能不如专用的ASIC 电路。 专用集成电路-利用现成的微处理机IP核或根据某一特殊应用设计的微处理机核(也可以没有微处理机核),并结合专门设计的高速ASIC运算电路,能设计出性能价格比最高的理想数字信号处理系统。 12、传统的设计方法:查用器件手册;选用合适的微处理器和电路芯片;设计面包板和线路板;调试;定型;设计复杂的系统(几十万门以上)极其困难。 13、美国和中国台湾地区逻辑电路设计和制造厂家大都以Verilog HDL为主。 1、可编程逻辑器件(PLD)是一种能将数字系统实现在硬件电路上的设备,即能在现场规

中北大学硬件描述语言期末考试试卷及标准答案

中北大学 试题答案及评分标准 硬件描述语言及器件课程 (课程名称须与教学任务书相同) 20xx/20xx 学年第一学期 试题类别 A 拟题日期拟题教师 课程编号教师编号 使用班级 备注:试题答案要求按指定规格计算机打印,并将其文本与电子稿一并上交: ①校级考试课程交评估与考试中心命题科; ②院级考试课程交院教务科。

20xx/20xx 学年第一学期末考试试题答案及评分标准 (A卷) 硬件描述语言及器件 使用班级: xxxx 一、填空题(20分,每空格1分) 1、VHDL语言中标识符通常分为短标识符,扩展标识符两种。 2、VHDL对象包含常量,信号,变量,文件 4个基本数据类型。 3、VHDL语言中,数据类型常量说明的一般格式为: CONSTANT常数名:数据类型:=表达式;。 4、VHDL中位矢量类型表达为 bit ,位向量类型表达为 bit_vector() 。 5、VHDL语言有类型标记法,函数转换法,常数转换法 3种不同类型的数据变换方法。 6、VHDL中,设D0为“1001”, D1为'0', D2为“0110”。D0 & D1的运算结果是“10010”,D0 & D2的运算结果是“10010110”。 7、VHDL语言中包括四种运算操作符,分别是逻辑运算符,算术运算符,关系运算符,和并置运算符。 8、为了启动进程,VHDL语言中必须包含一个显示的敏感信号量表或者包含一个wait语句。

二、判断对错并给出判断依据(20分,每小题5分,判断对错2分,给出正确判断依据3分) 1、进程之间的通信可以通过变量传递来实现。(×) 进程之间的通信需通过信号传递实现。 2、VHDL语言的高速性体现在其进程之内的带入语句都是并行执行的。(×) 进程之内的带入语句是顺序执行的。 3、语句y <= a when s=”00” else b when s=”01” else c when s=”10” else d; 中,s=”00”条件的优先级最高(√) 4、com1:u1 PORT MAP(a => n1,b => n2,c => m);语句中采用了位置映射的信号端口映射方式。(×) 采用的是名称映射方式

硬件描述语言及电路仿真

上海建桥学院本科课程教学大纲 【硬件设计语言及电路仿真】 【HDL Hardware Description Language and circuit simulation】 一、基本信息 课程代码:【b0822101】 课程学分:【3学分】 面向专业:【微电子学专业】 课程性质:【基础必修课】 开课院系:电子系 使用教材:主教材【《Verilog HDL 与数字系统设计简明教程》吴弋编人民邮电出版社 2009】辅助教材【《数字系统设计与Verilog HDL》(第二版) 王金明编电子工业出版社2005】 参考教材【《Verilog数字系统设计教程》夏宇闻编北京航天航空大学出版社2008】先修课程:【数字逻辑电路 b08214021(4)】 二、课程简介 本课程是微电子、电子、通信专业的一门重要的专业课,是学生学习专业课和从事本专业的科研、生产工作的重要基础。该门课程主要分为两大部分:第一部分主要使学生初步了解EDA技术的现状与发展,以及EDA技术自顶向下的设计方法,要求学生可熟练应用EDA工具平台(QuarutsII、Modelsim等开发软件)对可编程芯片(FPGA或CPLD)进行电路或系统的设计、仿真、下载与调试。第二部分基于硬件描述语言进行数字电路系统的设计与仿真则是该门课程的核心内容。这部分重点介绍目前比较流行的硬件描述语言——Verilog HDL语言,以及它的基本语法、基本结构、建模方法、模块调用以及模块测试等。并且给出不少目前较为常用的数字电路模块的编程实例,如加法器、编码器、译码器、数据选择器等组合逻辑电路,触发器、锁存器、计数器、移位寄存器等时序逻辑电路,以及Mealy状态机、Moore状态机等等。通过本课程的学习,使学生能够比较熟练地使用QuartusII等常用EDA软件对可编程芯片进行一些简单电路系统的设计,如交通灯控制电路,LED点阵显示,自动售货机控制电路,音乐播放器等。三、选课建议 FPGA设计是数字集成电路设计的重要组成部分和实践环节,属于应用部分,是数字集成电路设计的后续课程,应安排在数字电路课程之后。 四、课程基本要求 了解可编程逻辑器件的基本知识,EDA发展历程及EDA设计流程,以及常用的EDA工具。熟悉硬件描述语言的基本结构、建模方式、常用电路模块的设计实例。重点掌握借助于EDA开发工具用硬件描述语言设计可编程芯片电路系统的方法。 五、课程内容 第一部分 EDA技术概述 教学目的及要求:

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