当前位置:文档之家› EDA课程设计-数据缓冲器

EDA课程设计-数据缓冲器

课程设计任务书

学生姓名:专业班级:电子科学与技术0903班

指导教师:工作单位:信息工程学院

题目: 8×9先进先出(FIFO)缓冲器设计

初始条件:

QuartusⅡ软件、微机、FPGA实验箱

设计任务:

深入研究和掌握FIFO的理论知识。利用QuartusⅡ软件强大的编译和仿真功能,实现FIFO缓冲器的设计、仿真以及硬件功能实现。设计一个8×9先进先出(FIFO)缓冲器,要求达到一下功能:

1、8位字深,9位字宽;

2、当读信号ready有效时,FIFO的输出data_out使能,当ready无效时,

FIFO的输出处于高阻态;

3、当写信号write有效时,9位款的寄存器进行写操作;

4、信号rdinc和wrinc被用来作为寄存器读和写指针递增,以指示该位寄

存器的读和写;

5、信号rdptclr和wrptclr复位读写指针指向FIFO的第一个寄存器;

6、data_in是将被载入到一个寄存器的数据;

7、ef、ff分别作为缓冲器空和满的标志(附加)。

时间安排:

第1天课程设计任务布置、选题、查阅资料

第2~5天设计,软件编程、仿真和调试

第6~8天实验室检查仿真结果,验证设计的可行性和正确性

第9~10天设计的硬件调试

第11天机房检查设计成果,提交设计说明书及答辩

指导教师签名:年月日系主任(或责任教师)签名:年月日

摘要 (1)

ABSTRACT (2)

1 绪论 (1)

2 QUARTUS II的使用 (1)

2.1 新建工程 (1)

2.2 程序编写 (1)

2.3 仿真 (1)

2.4 硬件调试 (2)

3 FIFO缓冲器原理 (3)

3.1 FIFO缓冲器的结构 (3)

3.2 FIFO的一些重要参数 (3)

3.3 FIFO的分类 (4)

3.4 FIFO缓冲器的应用 (5)

3.5 FIFO缓冲器空/满状态的算法 (5)

4 FIFO缓冲器设计方案 (6)

4.1方案一——FIFO定制 (6)

4.1.1 设计步骤 (6)

4.1.2 功能验证 (7)

4.2方案二——8个字长为9的变量构成寄存器 (9)

4.2.1 设计思想 (9)

4.2.2功能模块 (9)

4.2.3 硬件调试 (10)

4 结束语 (11)

参考文献 (12)

附录1 (13)

附录2 (15)

摘要

先进先出(FIFO)缓冲器是双端口数据存储器,其存储结构与RAM相同,仅存储方式存在差异。本文详细介绍了基于FPGA开发环境Quartus II、用VHDL语言编程实现FIF O缓冲器的方法和过程。利用FPGA的可编程性,拥有简洁而又多变的设计方法。本设计实现了先进先出缓存器的一些基本功能,也把一些新的思路加入到设计中,通过仿真和实验箱实现了FIFO缓冲器的数据读写功能、读写指针移动和复位功能、缓冲器空、满指示标志功能。本次课程设计中拟定了两种设计方案,使FIFO缓冲器性能得以优化,并且都进行了仿真和FPGA实现。

关键词:FIFO缓冲器,FPGA,Quartus II,VHDL

Abstract

First In First Out (FIFO) buffer is a dual-port data memory. It has the same storage structure with RAM, but differences in the storage pattern. This article describes the methods and processes of designing a FIFO buffer, which based on Quartus II -- the FPGA development environment. The design is programmed by VHDL language. Via the simulation and experiment, such FIFO buffer functions is achived, as data reading and writing, moving and resetting the read and write pointer, signage feature of empty and full. In addition, in order to enhancing the function and improve the storing speed of FIFO, the designer developed three design options and have carried out simulation and implementation on FPGA chip, so that FIFO buffer’s performance can be optimized.

Key words:FIFO buffer,FPGA,Quartus II,VHDL

1 绪论

随着电子工程和计算机科学(EECS)的迅猛发展,数字电路系统的发展也十分迅速。电子器件在最近几十年经历了从小规模集成电路到中、大规模集成电路的发展历程。从简单的可编程器件到高密度可编程器件。设计方法也在从根本上转变。由原来的手工设计发展到现在的电子设计自动化EDA(Electronic Design Automation)技术。EDA技术就是依赖功能强大的计算机。在EDA工具软件平台上.以硬件描述语言VHDL(Very High Speed Inte-grated Circuit Hardware Description Language)为系统逻辑捕述手段。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。

可编程逻辑器件自20世纪70年代以来,经历了PAL、GAL、CPLD、FPGA几个发展阶段,其中CPLD、FPGA属高密度可编程逻辑器件,目前集成度以高达200万门/片,它将掩膜ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由ASIC实现,因此开发风险也大为降低。CPLD/FPGA器件已成为现代高层次电子设计方法的实现载体。

Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在X P、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。

Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、Exe-mplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。Altera在Quartus II中包含了许多诸如SignalTap II、Chip Editor和RTL V -iewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。

2 QUARTUS II的使用

2.1 新建工程

双击桌面QUARTUS II图标进入主界面,单击软件主界面中File → New Project Wizard...开始新建一个工工程,根据提示选择存储路径,输入工程名,软件会默认顶层实体名与工程名相同并显示。往下选择芯片,在此时选择Cyclone下的EP1C3T144C8,最后会显示所有选择结果,以供最后确认。

2.2 程序编写

单击File→New...,在弹出的窗口中选择新建VHDL File,然后在其中编写程序。一般用三段式VHDL语言编写程序代码。⑴库或程序包调用的说明部分;⑵实体说明部分;

⑶结构体描述模块功能;

编写完成程序代码后,将其以实体名保存,编译程序,若编译成功则继续向下进行。将多个程序连起来成为创建顶层文件,可以由程序编写或者用画图来实现。

本课题最终用原理图画顶层文件,故还需要由VHDL File生成元件,以供画图使用。在主窗口左侧Project Navigator下选择Files,在Software Files下找到需要生成元件的VHDL 文件,右键单击选择Create Symbol Files For Current File来生成元件。元件生成之后就可以进行原理图绘制。方法是:单击File→New...,在弹出的窗口中选择新建Block Diagram/Schematic File。左键双击原理图,在弹出的Symbol窗口中选择元件,可以再软件自带的元件库中找常用元件,如果之前有通过VHDL File生成元件,还可以在窗口中的Project下找自己生成的元件。选定元件,OK后将其放置在原理图上适当的位置,选好所有元件后,按照设计对元件进行连线,最后再加上输入输出端口并更改端口名,保存原理图进行编译,若成功则进入下一步,否则根据提示修改原理图直到编译成功。

2.3 仿真

单击File→New...,在弹出的窗口中选择新建Vector Waveform File。左键双击图左边的空白处,在弹出的Insert Node or Bus窗口下单击Node Finder,在弹出的窗口中单击List,并将Nodes Found全部导到Selected Nodes,单击OK,仿真图上会显示所有的输入输出端口。选定某一输入端口,在左边的工具条中选择适当的图标设置输入波形。将所有的输入端口设置完毕后保存,单击Processing→Simulator Tool,Simulation Tool设置为Functional,

单击Generate Functional Simulation Netlist。待其完成后选择Simulator Tool窗口下方的的Start,完成后,单击Open,仿真结果会覆盖在仿真图上。根据波形检查是否实现要达到的功能。

2.4 硬件调试

单击主界面Assignments→Device...在弹出的Setting窗口下单击Device&Pin Option,在弹出的窗口中设置不是用的管脚为高阻态。单击Assignments→Pins,对应实验箱上的管脚名进行设置,设置完毕后进行编译,软件会检测管脚设置有无错误。设置无误单击Programmer,在实验箱与微机主机连接好并通电打开电源的前提下,即可以向实验箱中导入程序,进行硬件调试。

3 FIFO缓冲器原理

FIFO是英文First In First Out的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

3.1 FIFO缓冲器的结构

FIFO缓冲器一般由三部分构成,分别为写地址产生器、读地址产生器、双端寄存器。各部分都有各自的时钟信号,有数据输入输出端口、读写操作控制信号、有缓冲空满标志位。FIFO缓冲器一般结构简图如图2-1所示。

图2-1 FIFO缓冲器一般结构简图

3.2 FIFO的一些重要参数

FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它指的是FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM 32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。

FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12 ,就可以存储12个8位的数据,FIFO的深度可大可小,个人认为FIFO深度的计算并无一个固定的公式。在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。在一个具体的应用中也不可能由一些参数算数精确的所需FIFO深度为多少,这在写速度

大于读速度的理想状态下是可行的,但在实际中用到的FIFO深度往往要大于计算值。一般来说根据电路的具体情况,在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。

满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。

空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。

读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。

写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。

读指针:指向下一个读出地址。读完后自动加1。

写指针:指向下一个要写入的地址的,写完自动加1。

读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。

3.3 FIFO的分类

根据FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。异步FIFO缓冲器结构原理图如图2-2所示。

图2-2 异步FIFO缓冲器结构原理图

3.4 FIFO缓冲器的应用

FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位100K SPS,那么每秒的数据量为100K×16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为10 56Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。

3.5 FIFO缓冲器空/满状态的算法

FIFO设计的难点在于怎样判断FIFO的空/满状态。为了保证数据正确的写入或读出,而不发生益处或读空的状态出现,必须保证FIFO在满的情况下,不能进行写操作。在空的状态下不能进行读操作。怎样判断FIFO的满/空就成了FIFO设计的核心问题。由于同步FIFO几乎很少用到,这里只描述异步FIFO的空/满标志产生问题。

构造一个指针宽度为N+1,深度为2^N字节的FIFO(为方便比较将格雷码指针转换为二进制指针)。当指针的二进制码中最高位不一致而其它N位都相等时,FIFO为满(在Clifford E. Cummings的文章中以格雷码表示是前两位均不相同,而后两位LSB相同为满,这与换成二进制表示的MSB不同其他相同为满是一样的)。当指针完全相等时,FIFO为空。这也许不容易看出,举个例子说明一下:一个深度为8字节的FIFO怎样工作(使用已转换为二进制的指针)。FIFO_WIDTH=8,FIFO_DEPTH= 2^N = 8,N = 3,指针宽度为N+1=4。起初rd_ptr_bin和wr_ptr_bin均为“0000”。此时FIFO中写入8个字节的数据。wr_ptr_bin =“1000”,rd_ptr_bin=“0000”。当然,这就是满条件。现在,假设执行了8次的读操作,使得rd_ptr_bin =“1000”,这就是空条件。另外的8次写操作将使wr_ptr_bin 等于“0000”,但rd_ptr_bin 仍然等于“1000”,因此FIFO为满条件。

显然起始指针无需为“0000”。假设它为“0100”,并且FIFO为空,那么8个字节会使wr_ptr_bin =“1100”,, rd_ptr_bin 仍然为“0100”。这又说明FIFO为满。

4 FIFO缓冲器设计方案

方案一充分利用Quartus II 软件的强大集成环境,直接定制FIFO模块,系统提供现成的电路结构图、程序代码、仿真波形等文件。只需用户简单的调用和设置就可以完成,非常方便快捷,而且准确。

方案二使用VHDL语言编写程序实现FIFO功能。从提高代码有效率的角度出发,用8个向量为9的变量存储数据,并将读写操作同内部寄存器融合在一起编写。整合模块,提高利用率。

4.1方案一——FIFO定制

4.1.1 设计步骤

直接Quartus II自带的FIFO利用设计步骤如下:

(1) 打开MegaWizard Plug-In Manager初始对话框。在Tools菜单中选择MegaWizard Plug-In Manager,选择Create a new custom…项(如果要修改一个已编辑好的LPM模块,则选择Edit an existing custom…项),即定制一个新的模块。单击Next按钮后在左栏选择Storage项下的FIFO,再选择Cyclone器件和VHDL语言方式;最后输入FIFO文件存放的路径和文件名:d:\sin_gnt\data_rom.vhd(定制的ROM 元件文件名),单击Next按钮。(2)输出信号控制线。选择full、empty、usedw。

(3)单击Next按钮后继续执行以下设置。后面的设置基本都默认,直接单击NEXT,直至如下图所示(中间过程为默认设置)选中所有的文件,即可生成.vhd、.inc、.cmp、.bsf、. jpg等文件。至此,FIFO宏定制设计完成。下面检测验证其功能。

4.1.2 功能验证

打开工程中.jpg文件得到仿真波形图。当写使能write=1,read=0时的时候,遇到第一个脉冲上升沿就将输入端口的001送到内部双端寄存器里面,第二个脉冲时把002送进去;之后读使能read=1,将第一个数001送到输出端口;read=0,写入第三个数003;再次读使能read=1,读出第二个数001。当aclr=1时,地址清零。在写入第一个数后,读指针加1等于写指针,故判为空。其功能模块如下:

仿真波形图:

4.2方案二——8个字长为9的变量构成寄存器

4.2.1 设计思想

在缓冲器内部定义一个8 9的存储空间用于暂存数据。初始状态读写指针都指向0号数寄存器(共8个)。当输入通道打开时,每来一个脉冲(由外部按键提供),向缓冲期内输入一个9位的数,与此同时内部寄存器读指针加1,准备接受下一个需要暂存的数,下一个脉冲到来,再存一个数,读指针再加1……当输出通道打开时,每来一个脉冲输出一个9位数,写指针加1,准备输出下一个9位数,同理进行下一个数的输出……由于输入/输出数据是按需进行的,故设计脉冲由按键提供,为更好的进行控制,加一个消抖电路使其每按一次内部计数确定加1。

4.2.2功能模块

本设计共由两个部分组成:先入先出缓存器、分频器。

其中先入先出缓存器模块包括写操作、读操作:

写操作:当wrptclr为0时,首先将写地址wrinc清零。当wrptclr为1且写使能write =1、读使能无效ready=0时,将data_in写入寄存器。程度段如下:

write_prog:process(wrptclr,clk)is

begin

if(wrptclr='0')then

wrinc<=(others=>'0'); wradd<=wrinc;

elsif (clk'event and clk='1') then

if (write='1') then

case wrinc is

when"000" => q0<=data_in;

………………

读操作:与写操作算法相同,只是读指针为rdinc,读指针清零控制变量rdptclr。

if (rdptclr='0') then rdinc<=(others=>'0');

elsif (clk'event and clk='1') then

if (ready='1') then --加入当ready无效时,输出处于高阻态

case rdinc is

when "000" => data_out <= q0; …………

else data_out<="ZZZZZZZZZ";

分频器原理如下:

为了配合消抖电路,取延时为5ms,即使得采样频率为5ms,由此根据f=1/T,算得脉冲频率为200Hz,而实验箱上提供的是20M的时钟频率,故要对时钟进行分频。程序中用内部计数器计算到来的脉冲数,脉冲数小于50000时输出为0,否则输出为1,同时计到100000时计数器清零。

整体原理图如下:

4.2.3 硬件调试

选择下进行芯片设置,选择芯片选用设置好后进行引脚设置,一切选择好后将程序下载入实验箱上,接通电源,用按键来控制它的脉冲输入,用拨码开关来控制它的输入序列,用发光二极管(即试验箱上的灯)作为它的输出,以观察灯的的变化来观察FIFO的输出。先将输入序列设置好将wrpclr rdpclr置1,将write 置1,此时灯的状态与输入序列相同,再将ready置1,改变输入序列,再将ready 置0,write置1,此时灯的状态与改后输入序列相同,从而达到缓冲的状态

4 结束语

两周时间转眼就过,电子线路EDA课程设计也接近的尾声。在此次课程设计,我认为最重要的就是认真的研究老师给的题目,先搞懂要做什么达到什么样的效果,再进行原理分析写出各个模块程序这样会事半功倍。

在这两周来,也总结出了自己很多问题,第一、不够细心比如由于粗心大意敲错代码,由于对课本理论的不熟悉导致编程出现错误。第二,思路不够严谨,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。同时自己查阅资料获取对自己有用的信息的能力有所提高

感谢学校给我们这次机会,锻炼了我们的动手能力。通过这次课设让我明白了理论和实际操作之间差距,而且也让我很明确得意识到自己在EDA有很多的不足,以后应该多钻研一下。同时也感谢指导老师在设计过程中的辅导以及同学的帮助。

再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。

参考文献

[1] 潘松.黄继业,EDA技术与VHDL(第二版).北京:清华大学出版社,2007.01

[2] 黄仁欣,EDA技术实用教程. 北京:清华大学出版社,2006.09

[3] 汪国强,EDA技术与应用. 北京:电子工业出版社,2007.04

[4] 宋嘉玉,孙丽霞.EDA实用技术.北京:人民邮电出版社,2006.

[5] 齐洪喜,陆颖.VHDL电路设计实用技术.北京:清华大学出版社,2004.

附录1

LIBRARY ieee;

USE ieee.std_logic_1164.all;

LIBRARY altera_mf;

USE altera_mf.all;

ENTITY FIFO IS

PORT

(

aclr : IN STD_LOGIC ;

clock : IN STD_LOGIC ;

data : IN STD_LOGIC_VECTOR (8 DOWNTO 0);

rdreq : IN STD_LOGIC ;

wrreq : IN STD_LOGIC ;

empty : OUT STD_LOGIC ;

full : OUT STD_LOGIC ;

q : OUT STD_LOGIC_VECTOR (8 DOWNTO 0);

usedw : OUT STD_LOGIC_VECTOR (2 DOWNTO 0)

);

END FIFO;

ARCHITECTURE SYN OF fifo IS

SIGNAL sub_wire0 : STD_LOGIC_VECTOR (2 DOWNTO 0);

SIGNAL sub_wire1 : STD_LOGIC ;

SIGNAL sub_wire2 : STD_LOGIC_VECTOR (8 DOWNTO 0);

SIGNAL sub_wire3 : STD_LOGIC ;

COMPONENT scfifo

GENERIC (

add_ram_output_register : STRING;

intended_device_family : STRING;

lpm_numwords : NA TURAL;

lpm_showahead : STRING;

lpm_type : STRING;

lpm_width : NA TURAL;

lpm_widthu : NA TURAL;

overflow_checking : STRING;

underflow_checking : STRING;

use_eab : STRING

);

PORT (

usedw : OUT STD_LOGIC_VECTOR (2 DOWNTO 0);

rdreq : IN STD_LOGIC ;

empty : OUT STD_LOGIC ;

aclr : IN STD_LOGIC ;

clock : IN STD_LOGIC ;

q : OUT STD_LOGIC_VECTOR (8 DOWNTO 0);

wrreq : IN STD_LOGIC ;

data : IN STD_LOGIC_VECTOR (8 DOWNTO 0);

full : OUT STD_LOGIC

);

END COMPONENT;

BEGIN

usedw <= sub_wire0(2 DOWNTO 0);

empty <= sub_wire1;

q <= sub_wire2(8 DOWNTO 0);

full <= sub_wire3;

scfifo_component : scfifo

GENERIC MAP (

add_ram_output_register => "ON",

intended_device_family => "Cyclone",

lpm_numwords => 8,

lpm_showahead => "OFF",

lpm_type => "scfifo",

lpm_width => 9,

lpm_widthu => 3,

overflow_checking => "ON",

underflow_checking => "ON",

use_eab => "ON"

)

PORT MAP (

rdreq => rdreq,

aclr => aclr,

clock => clock,

wrreq => wrreq,

data => data,

usedw => sub_wire0,

empty => sub_wire1,

q => sub_wire2,

full => sub_wire3

);

END SYN;

附录2

FIFIO的程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity FIFO is

port(ready,write : in std_logic;

data_in : in std_logic_vector(8 downto 0);

clk : in std_logic;

rdptclr,wrptclr : in std_logic;

data_out : out std_logic_vector(8 downto 0));

end FIFO;

architecture bhv of FIFO is

signal rdinc,wrinc : integer range 0 to 7;

signal rom0,rom1,rom2,rom3,rom4,rom5,rom6,rom7 : std_logic_vector(8 downto 0); signal r_w : std_logic_vector(1 downto 0);

begin

process(clk,data_in,ready,write,rdptclr,wrptclr)

begin

r_w<=ready&write;

if(rising_edge(clk))

then case r_w is

when "00"|"11" => data_out<="ZZZZZZZZZ";

when "01" => if(wrptclr='1') then wrinc<=0;

else case wrinc is

when 0 => rom0<=data_in;

when 1 => rom1<=data_in;

when 2 => rom2<=data_in;

when 3 => rom3<=data_in;

when 4 => rom4<=data_in;

when 5 => rom5<=data_in;

when 6 => rom6<=data_in;

when 7 => rom7<=data_in;

when others => null;

end case;

wrinc<=wrinc+1;

end if;

when "10" => if(rdptclr='1')

then rdinc<=0;

else case rdinc is

when 0 => data_out<=rom0;

when 1 => data_out<=rom1;

EDA技术实用教程(第四版)习题答案

《EDA技术实用教程(第四版)》习题 3 习题 3-1 画出与以下实体描述对应的原理图符号元件: ENTITY buf3s IS --实体1:三态缓冲器 PORT(input:IN STD_LOGIC; --输入端 enable:IN STD_LOGIC; --使能端 output:OUT STD_LOGIC); --输出端 END buf3s ; ENTITY mux21 IS --实体2: 2选1多路选择器 PORT(in0, in1,sel: IN STD_LOGIC; output:OUT STD_LOGIC); 3-2 图3-16所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序,选择控制信号s1和s0的数据类型为STD_LOGIC_VECTOR;当s1=’0’,s0=’0’;s1=’0’,s0=’1’;s1=’1’,s0=’0’和s1=’1’,s0=’1’时,分别执行y<=a、y<=b、y<=c、y<=d。 图3-16 4选1多路选择器 --解1:用IF_THEN语句实现4选1多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; mux21 in0 output in1 sel buf3s input output enable

ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41; ARCHITECTURE if_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据BEGIN s0s1<=s1&s0; --s1相并s0,即s1与s0并置操作 PROCESS(s0s1,a,b,c,d) BEGIN IF s0s1 = "00" THEN y <= a; ELSIF s0s1 = "01" THEN y <= b; ELSIF s0s1 = "10" THEN y <= c; ELSE y <= d; END IF; END PROCESS; END ARCHITECTURE if_mux41; --解2:用CASE语句实现4选1多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41; ARCHITECTURE case_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据类型BEGIN s0s1<=s1&s0; --s1相并s0,即s1与s0并置操作 PROCESS(s0s1,a,b,c,d) BEGIN CASE s0s1 IS --类似于真值表的case语句 WHEN "00" => y <= a; WHEN "01" => y <= b; WHEN "10" => y <= c; WHEN "11" => y <= d; WHEN OTHERS =>NULL ; END CASE; END PROCESS; END ARCHITECTURE case_mux41;

EDA 课程设计

第一章绪论 1.1 EDA技术的简介 EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。 1.1.1 EDA的软件介绍 EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。 1.1.2 EDA技术的基本特征 EDA代表了当今电子设计技术的最新发展方向。它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分。系统的关键电路用一片或几片专用集成电路(ASIC,ApplicationSpecificIntegratedCircnit)实现,然后采用硬件描述语言(HDlHardwareDescriptionLanguage)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。

电子技术与EDA技术实验及仿真课程设计

电子技术与EDA技术实验及仿真课程设计 1、课程设计的背景 电子科学技术是当今世界上最重要、最快速发展的学科之一,它在现代化建设和国防现代化中具有战略地位。EDA技术是电子设计自动化技术的简称,它与电子技术在现代化建设中密切相关。作为电子科学技术的一部分,EDA技术是电子设计和制造的关键技术之一。 本课程设计旨在将电子技术与EDA技术进行结合,设计出一套完整的课程,让学生通过实验和仿真,深入了解电子技术和EDA技术的核心知识、工具和方法,并能够应用它们进行电子设计和制造。 2、课程设计内容 2.1 课程设计目标 本课程设计旨在培养学生以下能力: •掌握电子技术基础知识,包括电路、器件、信号处理和通信等方面; •熟悉EDA工具,掌握EDA技术的基础知识,并且能够使用EDA技术进行电路设计和仿真; •具备独立完成电子设计和制造的能力,掌握最新的电子设计和制造技术。 2.2 课程设计内容 本课程设计包括以下三部分内容: 2.2.1 电子技术基础 电子技术基础包括以下内容:

•电路基础知识,包括电路元件、电路定理、电路分析方法、二极管、三极管等; •信号处理,包括信号采集、信号处理、信噪比等; •通信原理,包括调制原理、解调原理、通信链路等。 2.2.2 EDA技术基础 EDA技术基础包括以下内容: •EDA技术概述,包括EDA技术的基本概念、EDA工具的分类和应用领域等; •EDA工具基础,包括电路仿真工具、PCB设计工具、原理图编辑工具等; •EDA技术应用案例,包括EDA技术在电路设计与仿真、芯片设计与验证、PCB设计与制造、嵌入式软硬设计等方面的应用案例。 2.2.3 实验与仿真 实验与仿真是本课程设计的核心部分,实验与仿真内容包括以下几个方面:•电路实验,包括基础电路实验、信号处理实验、通信实验等; •EDA工具实验,包括电路仿真实验、原理图设计实验、PCB设计实验等; •项目实验,将上述实验内容有机结合起来,进行项目式实验,让学生在实践中掌握电子设计和制造的全流程。 3、课程设计重点 本课程设计的重点是实验与仿真部分,实验与仿真将电子技术和EDA技术进行有机结合,让学生在实践中深入了解和掌握两者的核心知识、工具和方法,并且在项目实验中灵活运用电子技术和EDA技术。

EDA课程设计实验报告

课程设计报告 课程名称数字系统与逻辑设计 课题名称16*16点阵显示 专业通信工程 班级1181 学号 2 姓名肖浪

指导教师乔汇东吴德建 2013年7月2日 湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题16*16点阵显示 专业班级通信工程1181 学生姓名肖浪 学号 2 指导老师乔汇东吴德建

任务书下达日期2013 年6月23日 任务完成日期2013 年7月2日 《数字系统与逻辑设计》课程设计任务书 一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排 第十八周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

EDA电子设计自动化知识点总结

1、实体界面说明中端口的模式有四种端口模式为:1、IN相当于只可输入的引脚; 2、OUT相当于只可输出的引脚; 3、BUFFER相当于带输出缓冲器并可以回读的引脚; 4、INOUT相当于双向引脚; 2、嵌入式阵列块EAB能实现存储功能,每个EAB提供2048比特,可完成ROM,RAM,双口RAM或者FIFO功能。 3、VHDL程序设计中的两大基本描述语句是顺序语句,并行语句。 4、FLEX10K的结构提供了两条专用高速通道,即进位链和级联链。 5、常用的源程序输入方式有原理图输入方式、状态图输入方式、VHDL软件程序的文本方式。 6、FPGA的可编程互连线分为通用互连、直接互连、长线。 7、FPGA(现场可编程门阵列)结构可分为三部分:可编程逻辑单元、可编程输入/输出单元、可编程连线。 8、CPLD(复杂可编程逻辑器件)的结构可分为三部分:可编程逻辑宏单元、可编程输入/输出单元、可编程内部连线。 9、结构体的三种描述方式:行为级描述、数据流级描述、结构级描述。 10、EDA设计几个描述层次:行为级描述、寄存器传输级描述(RTL)、门级描述、版图级描述。 11、构成一个完整的VHDL语言程序的五大基本结构:实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)、程序包(PACKAGE)。 12、VHDL的子程序有过程和函数两种类型,具有可重载性。 13、数字ASIC设计方法有两种:全定制法、半定制法(门阵列法、标准单元法、可编程逻辑器件法)。 14、数字系统的模型:数据处理子系统和控制子系统。 15、数字系统设计方法:模块设计法、自顶向下设计法、自底向上设计法。 16、EDA的工程设计流程:原理图/HDL文本输入→功能仿真→综合→适配→时序→仿真→编辑下载→硬件测试。 17、FPGA的配置流程:芯片初始化、芯片配置和起动。 18、转向控制语句共有五种:IF 语句、CASE 语句、LOOP 语句、NEXT 语句和EXIT 语句。 19、并行信号赋值语句有三种形式:简单信号赋值语句、条件信号赋值语句和选择信号赋值语句。 20、条件信号赋值语句与什么语句等效:条件信号赋值语句与进程中的多选择IF语句等价。 21、目前世界上有几十家CPLD/FPGA的公司,最大的三家是:xilinx Alera Lattic 22、CPLD中的I/O控制模块基本主要由输出极性转换电路、触发器、输出三态缓冲器三部分和它们相关的选择电路组成 23、VHDL语言的数据对象有:常量、变量、信号 24、设计过程的仿真有:行为仿真、功能仿真、时序仿真 25、IspLSI/pLSI逻辑器件的结构主要包括:通用逻辑块、巨块结构、全局时钟结构、I/O单元(通用逻辑块、全局布线区、输出布线区、加密单元) 26、VHDL的数据类型:标量型,复合类型,存取类型,文件类型 27、进程语句结构的三个组成部分:进程说明部分,顺序描述语句部分,敏感信号参数表

EDA技术实用教程课后习题答案

第一章 1-1 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系 答:利用 EDA 技术进行电子系统设计的最后目标是完成专用集成电路 ASIC 的设计和实现;FPGA 和 CPLD 是实现 这一途径的主流器件。FPGA 和 CPLD 通常也被称为可编程专用 IC,或可编程 ASIC。FPGA 和 CPLD 的应用是 EDA 技术 有机融合软硬件电子设计技术、SoC(片上系统)和 ASIC 设计,以及对自动设计与自动实现最典型的诠释。 1-2 与软件描述语言相比,VHDL 有什么特点 P6 答:编译器将软件程序翻译成基于某种特定 CPU 的机器代码,这种代码仅限于这种 CPU 而不能移植,并且机器 代码不代表硬件结构,更不能改变 CPU 的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将 VHDL 程序转化的目标是底层的电路结构网表文件,这种满足 VHDL 设计程序功能描述的电路结构,不依赖于任何特定硬 件环境;具有相对独立性。综合器在将 VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具 有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约 束条件,选择最优的方式完成电路结构的设计。 l-3 什么是综合有哪些类型综合在电子设计自动化中的地位是什么 什么是综合答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层 次的便于具体实现的模块组合装配的过程。 有哪些类型答:(1)从自然语言转换到 VHDL 语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器 传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从 RTL 级表示转换到逻 辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC 设计),或转换到 FPGA 的配置网表 文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器 在接受 VHDL 程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综 合的诸多约束条件信息;根据工艺库和约束条件信息,将 VHDL 程序转化成电路实现的相关信息。 1-4 在 EDA 技术中,自顶向下的设计方法的重要意义是什么 P7~10答:在 EDA 技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP 在 EDA 技术的应用和发展中的意义是什么 P11~12 答:IP 核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 第二章 2-1 叙述 EDA 的 FPGA/CPLD 设计流程。 P13~16 答:1.设计输入(原理图/HDL 文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。 2-2 IP 是什么IP 与 EDA 技术的关系是什么 P24~26 IP 是什么答:IP 是知识产权核或知识产权模块,用于 ASIC 或FPGA/CPLD 中的预先设计好的电路功能模块。 IP 与 EDA 技术的关系是什么答:IP 在 EDA 技术开发中具有十分重要的地位;与 EDA 技术的关系分有软 IP、 固 IP、硬 IP:软 IP 是用 VHDL 等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软 IP 通常是以硬件描述语言 HDL 源文件的形式出现。固 IP 是完成了综合的功能块,具有较大的设计深度,以网表文件 的形式提交客户使用。硬 IP 提供设计的最终阶段产品:掩模。 2-3 叙述 ASIC 的设计方法。 P18~19 答:ASIC 设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。 全定制方法是一种基于晶体管级的,手工设计版图的制造方法。

EDA课程设计已完成

EDA课程设计报告设计课题:基于51单片机的CPLD开发板 专业班级:电子信息工程13-2 学生姓名:迟士亮 指导教师:林泽鸿 设计时间:20150630

引言.......................................................................................................................................... III 摘要.......................................................................................................................................... IV 绪论.. (1) 一.设计任务与要求 (1) 二.方案设计与论证 (1) 一:使用A VR单片机 (1) 二:51系列单片机 (1) 三:单片机与epm7064之间通信 (1) 四:电源 (2) 五:通信编程部分 (2) 六:CPLD时钟信号 (2) 八:IO上拉电阻 (2) 论证结果: (2) 三.单元电路设计与参数计算 (2) 开发板硬件设计: (2) 四.总原理图及元器件清单 (6) 1.总原理图 (6) 1.元件清单(或程序清单) (7) 五.安装与调试 (8) 六.性能测试与分析 (10) 结论与心得 (10) 参考文献 (11)

引言 单片机以其控制功能强体积小价格低耗电省可靠性高等特点,嵌入式应用很广。而单片机学习门槛较高,涉及单片机软硬件知识,同时还要掌握几种软硬件工具平台,初学者要想快速入门单片机领域,往往需要一个好的硬件平台和大量易懂的实例。随着电子技术的不断发展,大规模集成电路的运用越来越普遍,用CPLD/FPGA 来开发新产品是电子技术发展必然趋势。目前各高校逐步开设了单片机课程和可编程器件设计课程,而两门课程往往是独立开设,尤其是实验,而实验是检验理论正确与否的试金石,是学好两门课程的重要手段和方法。从而,切实满足初学者需要的实验板的开发成为了现实,而目前市场上针对初学者而开发的综合实验板价格高,体积大,操作烦琐,不易学习掌握。

EDA课程设计内容

1 绪论 1.1 EDA技术概论 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 1.2 硬件描述语言VHDL 1.2.1 VHDL简介 VHDL全名Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。 VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 1.2.2 VHDL的流程设计 从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。

EDA课程设计

课程设计 班级:电信09—1班 姓名:侯万鹏 学号:0906110107 指导教师:张沛泓 成绩: 电子与信息工程学院

1.引言 1.1 EDA技术概述 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB 版图的整个过程的计算机上自动处理完成 1.2 数字系统 数字系统是由对信息进行采集, 转换、传输、存储、加工处理和利用的一组相互联系, 相互作用的部件所组成的一个有机的整体. 虽然信息来源不同, 有经济信息、政治信息、图文信息,信息形态不一,有离散的、有连续的等等.但都可经过变换, 转换成数字系统所能接收的数字信息, 进行存储和处理. 同时又可把数字系统加工、处理后的信息经过相应逆变换,成为对被控对象进行控制的可靠依据.数字系统具有可靠性强, 精确度高,稳定性好可模块化, 便于集成等优点. 2.交通灯控制系统介绍 在经济科技高速发展的今天,交通灯在马路上随处可见应用广泛。交通灯控制器用于自动控制十字路口的交通灯和计时期,指挥各通道车辆和行人安全有序的通行。在马路的十字路口,红灯亮用于表示该马路禁止通行,绿灯亮表示该马路可以正常通行,黄灯亮表示停车。倒计时用于显示通行和禁止通行的时间。一般情况下, 当汽车行驶至十字交通路口时, 有3种选择: 向前, 向左转弯, 向右转弯。根据我国的交通规则规定, 汽车是靠右行驶, 向右拐弯只要走弧形的支干道即可, 不需受十字交通灯的束缚。十字路口交通灯负责控制各走向红绿灯的状态及转换, 并且各状态之间有一定的时间过渡。同时, 东西南北每条干道上都为人行横道设置了红绿灯, 提醒过路行人在安全时刻穿越道路, 以保证行人的安

2020年(OA自动化)电子设计自动化(eda)实验指导书

(OA自动化)电子设计自动化(eda)实验指导书

电子设计自动化(EDA)实验指导书 前言 近些年来,电子设计自动化(EDA)技术发展迅速。一方面,各种大容量、高性能、低功耗的可编程逻辑器件不断推出,使得专用集成电路(ASIC)的生产商感受到空前的竞争压力。另一方面,出现了许多EDA设计辅助工具,这些工具大大提高了新型集成电路的设计效率,使更低成本、更短周期的复杂数字系统开发成为可能。于是一场ASIC与FPGA/CPLD之争在所难免。然而PLD器件具有先天的竞争优势,那就是可以反复编程,在线调试。EDA技术正是这场较量的推动引擎之一。一般来说,EDA技术就是以计算机为平台,以EDA软件工具为开发环境,以HDL为设计语言,以可编程器件为载体,以ASIC、SOC芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。设计者只需编写硬件描述语言代码,然后选择目标器件,在集成开发环境里进行编译,仿真,综合,最后在线下载调试。整个过程,大部分工作由EDA软件完成。全球许多著名的可编程器件提供商都推出了自己的集成开发工具软件,如Altera公司的MAX+PLUSⅡ、QuartusⅡ软件;Xilinx公司的Foundation、ISE软件,Lattice公司的ispExpert软件,Actel 公司的Libero软件等。这些软件的推出,极大地促进了集算法设计、芯片编程、电路板设计于一体的EDA技术的发展。另外,在以SOC 芯片为目标器件的电子系统设计要求下,可编程器件的内部开始集成高速的处理器硬核、处理器软核、DSP模块、大量的存储资源、高速的串行收发模块、系统时钟管理器、多标准的I/O接口模块,

EDA课程设计

目录 前言 (1) 1 选题背景及目的 (1) 1.1 选题背景 (1) 1.2 选题目的 (2) 2 软件的开发环境 (2) 2.1 FPGA的基本结构 (2) 2.2 FPGA系统设计流程 (4) 2.3 FPGA开发编程原理 (4) 3 总体设计方案 (5) 3.1 电子钟功能概述 (5) 3.2 电子钟设计流程 (6) 4 具体实现过程 (6) 4.1 具体实现过程 (6) 4.1.1 新建工程文件夹 (6) 4.1.2 新建工程 (6) 4.1.3 添加代码 (7) 4.1.4 编译与综合 (8) 4.1.5 仿真 (8) 4.1.6 编程下载 (9) 5 系统模块设计 (9) 5.1 分频模块 (9) 5.1.1 分频器 (9) 5.1.2 功能及其作用 (9) 5.1.3 代码 (9) 5.1.4 分频器模块封装 (10) 5.1.5 分频器模块仿真 (10) 5.2 计数模块 (11) 5.2.1 计数器 (11) 5.2.2 功能及其作用 (11) 5.2.3 代码 (11)

5.2.4 计数模块封装 (11) 5.2.5 计数模块波形仿真 (12) 5.3 显示模块 (12) 5.3.1 功能及其作用 (12) 5.3.2 显示模块代码 (13) 5.3.2-1 显示模块代码 (13) 5.3.3 显示模块封装图 (13) 5.3.4 管脚分配及下载配置 (14) 5.4 系统顶层文件 (15) 5.4.1 系统顶层设计 (15) 5.4.2 顶层模块原理连线图 (16) 6 设计结果 (16) 6.1 实物照 (16) 7 总结 (16) 附录 (18) 参考文献 (24)

《EDA技术实用教程(第五版)》课后习题答案(第1~10章)

《EDA技术实用教程(第五版)》课后习 题及答案 1 习题 1-1EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?P3~4 EDA技术与ASIC设计和FPGA开发有什么关系?答:利用EDA 技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。 FPGA在ASIC设计中有什么用途?答:FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA实现ASIC设计的现场可编程器件。 1-2 与软件描述语言相比,VHDL有什么特点? P4~6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。 综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表

达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么?P6 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4 在EDA技术中,自顶向下的设计方法的重要意义是什么? P8~10

EDA课程设计-数据缓冲器

课程设计任务书 学生姓名:专业班级:电子科学与技术0903班 指导教师:工作单位:信息工程学院 题目: 8×9先进先出(FIFO)缓冲器设计 初始条件: QuartusⅡ软件、微机、FPGA实验箱 设计任务: 深入研究和掌握FIFO的理论知识。利用QuartusⅡ软件强大的编译和仿真功能,实现FIFO缓冲器的设计、仿真以及硬件功能实现。设计一个8×9先进先出(FIFO)缓冲器,要求达到一下功能: 1、8位字深,9位字宽; 2、当读信号ready有效时,FIFO的输出data_out使能,当ready无效时, FIFO的输出处于高阻态; 3、当写信号write有效时,9位款的寄存器进行写操作; 4、信号rdinc和wrinc被用来作为寄存器读和写指针递增,以指示该位寄 存器的读和写; 5、信号rdptclr和wrptclr复位读写指针指向FIFO的第一个寄存器; 6、data_in是将被载入到一个寄存器的数据; 7、ef、ff分别作为缓冲器空和满的标志(附加)。 时间安排: 第1天课程设计任务布置、选题、查阅资料 第2~5天设计,软件编程、仿真和调试 第6~8天实验室检查仿真结果,验证设计的可行性和正确性 第9~10天设计的硬件调试 第11天机房检查设计成果,提交设计说明书及答辩 指导教师签名:年月日系主任(或责任教师)签名:年月日

摘要 (1) ABSTRACT (2) 1 绪论 (1) 2 QUARTUS II的使用 (1) 2.1 新建工程 (1) 2.2 程序编写 (1) 2.3 仿真 (1) 2.4 硬件调试 (2) 3 FIFO缓冲器原理 (3) 3.1 FIFO缓冲器的结构 (3) 3.2 FIFO的一些重要参数 (3) 3.3 FIFO的分类 (4) 3.4 FIFO缓冲器的应用 (5) 3.5 FIFO缓冲器空/满状态的算法 (5) 4 FIFO缓冲器设计方案 (6) 4.1方案一——FIFO定制 (6) 4.1.1 设计步骤 (6) 4.1.2 功能验证 (7) 4.2方案二——8个字长为9的变量构成寄存器 (9) 4.2.1 设计思想 (9) 4.2.2功能模块 (9) 4.2.3 硬件调试 (10) 4 结束语 (11) 参考文献 (12) 附录1 (13) 附录2 (15)

EDA课程设计报告

EDA课程设计报告 实训任务: 一、实训目的和要求: (1)熟练掌握keil c51集成开发环境的使用方法 (2)熟悉keil c51集成开发环境调试功能的使用和dp?51pro。net单片机仿真器、编程器、实验仪三合一综合开发平台的使用。 (3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。 (4)了解掌握单片机芯片的烧写方法与步骤。 (5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。 (6)掌握利用protel 99 se绘制电路原理图及pcb图。 (7)了解pcb板的制作腐蚀过程。 二、实训器材: pc机(一台) pcb板(一块) 520ω电阻(八只) 10k电阻(一只) led发光二极管(八只) 25v 10μf电容(一只) 单片机ic座(一块) at89c51单片机芯片(一块) 热转印机(一台) dp?51pro。net单片机仿真器、编程器、实验仪三合一综合开发平台(一台) 三、实训步骤: (2)将流水灯程序编写完整并使用tkstudy ice调试运行。 (4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。 (6)制板。首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb 板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。

(7)焊接。将所给元器件根据原理图一一焊至pcb板相应位置。 (8)调试。先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。 (流水灯控制器原理图) 四、流水灯控制器程序的主程序: org 0000h sjmp start org 0030h start:mov a,0ffh mov r0,1ch mov r2,12h clr c loop1:acall delay djnz r0,loop,尽在。 一、实习内容: (1)学习识别简单的电子元件与电子线路; (2)学习并掌握收音机的工作原理; (3)按照图纸焊接元件,组装一台收音机,并掌握其调试方法。 二、实习器材介绍: (1)电烙铁:由于焊接的元件多,所以使用的是外热式电烙铁,功率为30w,烙铁头是铜制。 (2)螺丝刀、镊子等必备工具。 (3)松香和锡,由于锡它的熔点低,焊接时,焊锡能迅速散步在金属表面焊接牢固,焊点光亮美观。 (4)两节5号电池。 三、实习目的: 电子技术实习的主要目的就是培养我们的动手能力,同金工实习的意义是一样的,金工实习要求我们都日常的机械车床,劳动工具能够熟练使用,能够自己动手做出一个像样的东西来。而电子技术实习就要我们对电子元器件识别,相应

eda课程设计

eda课程设计 EDA课程设计 EDA(Electronic Design Automation)是电子设计自动化的缩写,是指利用计算机技术和软件工具来辅助电子设计的过程。EDA课程设计是指在电子设计自动化领域中,为学生提供相关的课程内容和实践机会,以培养学生的电子设计能力和创新能力。 EDA课程设计的目的是为了让学生掌握电子设计自动化的基本理论和方法,了解EDA软件工具的使用和应用,培养学生的电子设计能力和创新能力。在EDA课程设计中,学生需要学习电路设计、PCB 设计、仿真分析、布局布线等相关知识,掌握EDA软件工具的使用和应用,完成电子设计项目的实践任务。 EDA课程设计的内容包括电路设计、PCB设计、仿真分析、布局布线等方面。在电路设计方面,学生需要学习电路基本理论、电路分析方法、电路设计流程等知识,掌握常用的电路设计软件工具,如Protel、Altium Designer等。在PCB设计方面,学生需要学习PCB设计的基本原理、PCB设计流程、PCB设计软件工具的使用等知识,掌握常用的PCB设计软件工具,如PADS、Altium Designer等。在仿真分析方面,学生需要学习仿真分析的基本原理、仿真分析的流程、仿真分析软件工具的使用等知识,掌握常用的仿真分析软件工具,如SPICE、PSpice等。在布局布线方面,学生需

要学习布局布线的基本原理、布局布线的流程、布局布线软件工具的使用等知识,掌握常用的布局布线软件工具,如PADS、Altium Designer等。 EDA课程设计的实践任务包括电子设计项目的设计和实现。学生需要根据实际需求,设计并实现一个电子产品,包括电路设计、PCB 设计、仿真分析、布局布线等方面。在电路设计方面,学生需要根据实际需求,设计一个符合要求的电路,包括电路原理图、电路元器件的选型和布局等。在PCB设计方面,学生需要根据电路设计的要求,设计一个符合要求的PCB板,包括PCB板的布局、布线、元器件的安装等。在仿真分析方面,学生需要对电路进行仿真分析,验证电路的正确性和稳定性。在布局布线方面,学生需要对PCB板进行布局布线,保证电路的稳定性和可靠性。 EDA课程设计的教学方法包括理论讲解、实验操作和项目实践。在理论讲解方面,教师需要讲解电子设计自动化的基本理论和方法,介绍EDA软件工具的使用和应用。在实验操作方面,教师需要指导学生进行电路设计、PCB设计、仿真分析、布局布线等实验操作,让学生掌握相关的实验技能。在项目实践方面,教师需要指导学生进行电子设计项目的实践任务,让学生掌握电子设计的实践能力和创新能力。 EDA课程设计的评价方法包括实验报告、项目报告和实践成果。在

EDA课程设计_2

EDA课程设计 实验1多功能数字电子钟 1.1 实验目的 1.2 实验仪器与器材 1.EDA开发软件一套 2.微机一台 3.实验开发系统一台 4.打印机一台 5.其他器件与材料若干 1.3 实验说明 系统输入:系统状态及校时、定时转换的控制信号为k、set; 时钟信号clk,采用1024Hz; 系统复位信号为reset。输入信号均由按键产生。 系统输出:LED显示输出;蜂鸣器声音信号输出。 多功能数字钟系统功能的具体描述如下: 计时:正常工作状态下,每日按24 h计时制计时并显示,蜂鸣器无声,逢整点报时。 校时:在计时显示状态下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k键”又恢复到正常计时显示状态。 1.“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管闪烁,并以4Hz的频率递增计数。 2.“分”校准状态:在“分”校准状态下,显示“分”的数码管闪烁,并以4Hz的频率递增计数。 3.“秒”复零状态:在“秒复零”状态下,显示“秒”的数码管闪烁并复零。 整点报时:蜂鸣器在“59”分钟的第"51”、“53”、“55"、“57”秒发频率为512Hz的低音,在“59”分钟的第“59”秒发频率为1024Hz的高音,结束时为整点。 显示:要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。

闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;闹钟定时显示。 闹钟定时设置:在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。 1.闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管闪烁,并以4Hz的频率递增计数。 2.闹钟“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管闪烁,并以4Hz的频率递增计数。 多功能数字钟系统结构逻辑框图如图1所示 1.4 实验要求 1.具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2.设计精度要求为1s。三点会 1.5 实验报告要求 1.系统设计方案论述,画出顶层电路结构图及功能分割图。 2.各功能模块设计说明及源程序。 3.设计实现过程及引脚锁定情况。 4.实验结果记录(含仿真结果及下载测试结果)、讨论及心得体会。 图1 数字钟系统总体结构逻辑框图 - 2 -

EDA技术教程课程设计

EDA技术教程课程设计 引言 EDA(Electronic Design Automation)是电子设计自动化的缩写,是一种利用计算机技术,使设计工作自动化,从而提高生产效率和降低成本的技术。EDA技术已经成为了电子设计领域的主要工具。 为了更好地掌握EDA技术,我们进行了一些相关的课程设计。在这个项目中,我们将介绍EDA技术的基础知识,并通过一些实践案例帮助大家更好地理解和应用EDA技术。 设计目标 本次课程设计主要有以下几个目标: 1.掌握EDA技术的基础知识和相关工具的使用。 2.通过具体案例,深入理解EDA技术的应用。 3.学会通过EDA技术提高电路设计效率和优化设计质量。 设计内容 本次课程设计主要内容如下: 1. EDA技术概述 介绍EDA技术的概念、历史和发展以及相关的软件工具。 2. 电子设计流程 介绍常见的电子设计流程:前端设计、后端设计、物理实现以及验证。

3. 电路元件库和设计规范 介绍电路设计中常见的元器件和设计规范。包括:模拟电路元件、数字电路元件、射频电路元件、半导体器件等。 4. 仿真和验证 介绍仿真和验证在电子设计中的重要性和应用。包括:SPICE仿真、FPGA验证、电路可靠性验证等。 5. 物理实现和制造 介绍物理实现和制造中的常用工具和技术。包括:IC设计流程、PCB设计软件、电路板制造等。 设计案例 为了更好地帮助大家理解和应用EDA技术,我们列出一些实践案例。 1. 一个简单的电路设计 设计一个简单的有源滤波器电路,采用OPA2333运放为放大器,实现50Hz低 通滤波器。使用SPICE软件进行仿真验证。 2. Verilog HDL设计 设计一个简单的ALU,在Quartus II软件中进行仿真和验证。 3. PCB板设计 使用Altium Designer软件进行PCB设计,包括原理图设计、布线和元器件选型。

《eda技术课程设计》指导书(修订版)2015-9-5.

《eda技术课程设计》指导书(修订版) 2015-9-5. 《eda技术课程设计》指导书(修订版)2015-9-5. 《EDA 技术课程设计》任务书2015.9.5 一、基于VHDL状态机的AD0809数据采集控制器设计1、设计背景AD0809芯片是一种8通道8位分辨率并行A/D转换,典型转换时间100μs,时钟频率640KHz。 (1)AD0809引脚图,如图1.1所示。 图1.1 AD0809引脚图其中: ·IN0~IN7: 8个控制输入通道,输入电压范围0~5V。 ·START: A/D转换启动输入信号,高电平有效。 ·EOC: 转换开始复低,转换结束复高,不转换时为高。 ·CLK: 输入时钟,典型为640KHz,最高为1280KHz。 ·REF(+)和REF(-): 参考电压基准,REF(+)按+5V基准电压,REF(-)接模拟地。 ·C~A:三位模拟通道选择输入项,选择方式见表1.1。 表1.1 选择输入与模拟通道对应关系C A B IN 通道选择0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5

1 1 0 IN6 1 1 1 IN7 ·ALE: 模拟通道输入锁存控制输入。 高电平有效,将C~A输入码锁存,使8选1开关选通对应的通道。 若ALE无效,则C~A输入变化,不影响8选1开关的选通状态。 正常将START与ALE并联在一起,利用START高电平脉冲,启动A/D转换时,同时将C~A输入锁存,选通模拟通道。 ·VCC: 直流电源+5V输入。 ·GND: 直流电源地输入。 ·D0~D7: A/D转换结果输出数据总线。 ·OE: 输出使能,高电平有效,打开三态门,D0~D7输出A/D结果。 (2)AD0809的工作时序图,如图1.2所示。 图1.2 AD0809工作时序图(3) AD0809多通道采样控制方案•一个通道A/D转换结束后,才能启动下一个通道的A/D转换,否则前一个A/D转换中途中止,没有A/D转换结

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