收藏 分销(赏)

第6VHDL与原理图层次型溷合设计.pptx

上传人:人****来 文档编号:4204662 上传时间:2024-08-23 格式:PPTX 页数:53 大小:686.43KB
下载 相关 举报
第6VHDL与原理图层次型溷合设计.pptx_第1页
第1页 / 共53页
第6VHDL与原理图层次型溷合设计.pptx_第2页
第2页 / 共53页
第6VHDL与原理图层次型溷合设计.pptx_第3页
第3页 / 共53页
第6VHDL与原理图层次型溷合设计.pptx_第4页
第4页 / 共53页
第6VHDL与原理图层次型溷合设计.pptx_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、6.1 自底向上混合设计自底向上混合设计 6.1.1 自底向上混合设计流程自底向上混合设计流程 自底向上(BotomUp)的方法是一种传统的设计思想。设计者首先将各种基本单元,如各种逻辑门以及加法器、选通器等做成基本单元库,然后调用它们,逐级向上组合,直到设计出自己满意的系统为止。自底向上混合设计流程如图6.1所示。6.1 自底向上混合设计自底向上混合设计6.1.1 6.1.1 自底向上混合设计流程自底向上混合设计流程6.1 自底向上混合设计自底向上混合设计6.1.2 1位二进制全加器设计位二进制全加器设计一位二进制半加器真值表如表6.1所示。其中a、b是输入端,So是和、co进位端。表6.1

2、 一位二进制半加器真值表6.1 自底向上混合设计自底向上混合设计1.建立工程建立工程 建立一个工程名为f_adder的工程文件,如图6.2所示:图6.2 f_adder的工程项目图 6.1 自底向上混合设计自底向上混合设计2.建立文件建立文件 建立三个VHDL文本文件,分别命名为h_adder.vhd(半加器文件名)、or_2.vhd(或门文件名)和f_adder.vhd(全加器文件名),并保存,如图6.3所示。图 6.36.1 自底向上混合设计自底向上混合设计3.输入代码并打包入库输入代码并打包入库 在每个VHDL文件中输入相应的代码,并保存文件,将底层的半加器和或门电路打包入库,如图6.4

3、所示 图6.4 输入代码后的图形 6.1 自底向上混合设计自底向上混合设计(1)半加器的)半加器的VHDL代码如下代码如下:【例6.1】library ieee;use ieee.std_logic_1164.all;entity h_adder isport(a,b:in std_logic;co,so:out std_logic);end entity h_adder;architecture str of h_adder issignal abc:std_logic_vector(1 downto 0);beginabcso=0;coso=1;coso=1;coso=0;conull;e

4、nd case;end process;end architecture str;图6.5半加器的打包元件 图6.6 半加器的仿真波形6.1 自底向上混合设计自底向上混合设计or_2.vhd中输入代码如下:中输入代码如下:【例6.2】library ieee;use ieee.std_logic_1164.all;entity or_2 isport(a,b:in std_logic;c:out std_logic);end entity or_2;architecture str of or_2 isarchitecture str of or_2 isbegincain,b=bin,co=

5、d,so=e);u2:h_adder port map(a=e,b=cin,co=f,so=sum);u3:or_2 port map(a=d,b=f,c=cout);end architecture str;6.1 自底向上混合设计自底向上混合设计5.顶层文件编译与仿真顶层文件编译与仿真(1)编译顶层VHDL的方法 此时,由于工程文件名是f_adder,所以可以直接点击编译按钮,此时将对顶层VHDL文件进行编译。图6.11 全加器的顶层VHDL语言仿真波形6.1 自底向上混合设计自底向上混合设计(2)编译顶层原理图)编译顶层原理图 编译顶层原理图文件,需要重新建立一个新的工程文件,且命名为f

6、g_adder,原因是顶层原理图文件名为fg_adder.bdf。其时序仿真结果如图6.14所示。图6.14 全加器顶层原理图仿真波形6.1 自底向上混合设计自底向上混合设计6.引脚分配、下载验证引脚分配、下载验证 分配引脚的结果如图6.15所示,并在实验板上验证其功能,具体步骤做实验再详述。图6.15 全加器引脚分配图 6.1 自底向上混合设计自底向上混合设计6.1.3 简易时钟计数电路设计简易时钟计数电路设计 1.时钟计数电路结构图 时钟电路的组成由两个模为60的计数器和一个模为12的计数器构成,具体结构如图6.16所示 6.1 自底向上混合设计自底向上混合设计2.模块电路的模块电路的VH

7、DL描述描述 本列采用混合设计输入方法,先建立两个VHDL文本文件,分别将模为60的8421BCD计数器和模为12的计数器代码输入,然后再建立顶层原理图文件。(1)模为60的BCD计数器的VHDL设计代码如下:6.1 自底向上混合设计自底向上混合设计【例6.4】模为60的BCD计数器的VHDL设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter_60 isport(en:in std_logic;clear:in std_logic;clk:in std_logic;c

8、ount:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0);end;architecture str of counter_60 isBegin -接下页6.1 自底向上混合设计自底向上混合设计-接上页count=1when(qh=0101 and ql=1001 and en=1)else 0;process(clk,clear)beginif(clear=0)thenqh=0000;ql=0000;elsif(clkevent and clk=1)then

9、if(en=1)then if(ql=9)then ql=0000;if(qh=5)then qh=0000;ql=“0000”;-接下页6.1 自底向上混合设计自底向上混合设计else qh=qh+1;-接上页 end if;else ql=ql+1;end if;end if;end if;end process;end;6.1 自底向上混合设计自底向上混合设计(2)模为)模为12的计数器的的计数器的VHDL代码如下:代码如下:【例6.5】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ent

10、ity counter_12 isport(en:in std_logic;clear:in std_logic;clk:in std_logic;count:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0);end;-接下页6.1 自底向上混合设计自底向上混合设计architecture str of counter_12 is -接上页begincount=1 when(qh=0001 and ql=0010 and en=1)else 0;process(

11、clk,clear)begin if(clear=0)then qh=0000;ql=0000;elsif(clkevent and clk=1)then if(en=1)then if(ql=9)then ql=0000;qh=“0001”;-接下页6.1 自底向上混合设计自底向上混合设计else ql=ql+1;-接上页 end if;if(qh=1)then if(ql=2)then qh=0000;ql=0001;else ql=ql+1;end if;end if;end if;end if;end process;end;6.1 自底向上混合设计自底向上混合设计3.顶层原理图设计顶

12、层原理图设计 如图6.17所示,时钟计数电路的顶层原理图设计,最后保存文件。6.1 自底向上混合设计自底向上混合设计4.编译和仿真编译和仿真 编译工程文件,建立仿真波形文件后完成仿真,仿真波形如图6.18所示。图6.18 时钟计数电路的顶层文件仿真波形6.2自顶向下混合设计自顶向下混合设计6.2.1自顶向下设计流程自顶向下设计流程 所谓自顶向下的设计方法如图6.19所示,它是指设计电子系统先从系统最抽象的层次出发,作高层次仿真,经过仿真验证后再经整体规划(Floor Planning)将系统行为操作分为多个子系统。6.2自顶向下混合设计自顶向下混合设计6.2.1自顶向下设计流程自顶向下设计流程

13、自顶向下的设计方法的优点:(1)克服了大规模电子系统高复杂度所带来的问题,系统可以层次式地划分为易于处理的子模块系统,子模块系统还可以划分成下一层子模块系统,任务可以层层分解,直到最容易实现为此。6.2自顶向下混合设计自顶向下混合设计6.2.1自顶向下设计流程自顶向下设计流程(2)各子模块系统可以给设计组中的成员同时设计,也加快了设计速度。(3)设计错误可以在早期发现,极大地减少了设计的迭代次数。(4)逻辑综合优化之前的设计工作和具体采用什么工艺生产芯片是无关的,因而设计的可移植性好,当要采用新的工艺时,可以直接从综合开始。(5)自顶向下的设计方法增加了一次性设计成功的可能性。6.2自顶向下混

14、合设计自顶向下混合设计6.2.1自顶向下设计流程自顶向下设计流程6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计 1.建立工程 建立名为counter_16的工程文件,如图 6.20所示。图6.20 counter_16的工程文件图6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计2.建立原理图文件建立原理图文件 建立一个空白的原理图文件,并命名为counter_16,如图6.21所示。图6.21 counter_16的原理图文件图 6.2自顶向下混合设计自顶向下混合设计6.2.2 16进

15、制计数译码显示电路设计进制计数译码显示电路设计3.创建图标模块创建图标模块 单击(Block Tool)按钮,在适当的位置放置一个符号块,如图6.22所示。图6.22 放置图标模块6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计4.设置图标模块设置图标模块(1)在图所示的符号块上单击鼠标右键:从弹出的菜单中选择“Block Properties”命令,弹出如图6.23所示的对话框。在“General”页面中的“Name”栏中输入设计文件名称,在“Instance name”栏中输入模块名称。本例中设计名称为“counter16”,模块名称为

16、“instl”。6.2自顶向下混合设计自顶向下混合设计 图6.23 设置图标模块6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计(2)单击“I/O”页标签:页面如图6.24所示。在“Name”栏中分别输入图标模块的输入端口名和输出端口名;在“type栏中分别选择与输入和输出对应的类型,点击ADD按钮。当设置完成所有端口后,单击“确定”按钮,结果如图6.25所示。6.2自顶向下混合设计自顶向下混合设计图6.24 图标模块“I/O”页标签图6.25 图标模块“I/O”设置完成6.2

17、.2 16进制计数译码显示电路设计进制计数译码显示电路设计6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计5.添加模块引线并设置属性添加模块引线并设置属性 (1)在图中的counter16模块的左右两侧分别用3条连线和1条总线连接,如图6.26所示。可以看到,在每条线靠模块的一侧都有的图样。双击其中一个样标,弹出“Mapper Properties”对话框,如图6.27所示。在“General”页面的“Type”栏中选择输入、输出类型,本例中选择为“INPUT”。6.2 自顶向下混合设计自顶向下混合设计图6.26 图标模块连线图6.27 图

18、标模块端口模式设置6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计(2)单击“Mappings”页标签,页面如图 6.28所示。在“I/O on block”栏里选择引脚clk,在“Signals in node”栏中输入连线节点名称clk。输入完成后,单击“Add”按钮添加到“Existing mappings”栏中。最后单击“确定”按钮。结果如图6.29所示。6.2自顶向下混合设计自顶向下混合设计图6.28 图标模块Mappings设置 图6.29 图标模块样标设置 6.2

19、.2 16进制计数译码显示电路设计进制计数译码显示电路设计6.2自顶向下混合设计自顶向下混合设计(3)同理,将其他引线按此方法进行设置。通常模块左侧放置输入接口信号,右侧放置输出接口信号。本例将左侧的其余两条输入信号分别设置为,rst和en;右侧的输出信号设置为q3.0,设置完成后如图6.30所示。6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计6.创建设计文件创建设计文件 在图6.30所示的符号块上单击鼠标右键,在弹出的菜单中选择“Create Design File form Selected Block”命令,弹出如图6.31所示对话

20、框。其中“File type”栏中有4个选项可供选择,它们是“AHDL”、“VHDL”、“Verilog HDL”和“Schematic”,分别对应不同的电路行为描述方法。本例中选择“VHDL”,单击“OK按钮。此时,会弹出生成模块文件的确认对话框,单击“确定”,进入VHDL文本编辑窗口,如图6.32所示。6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计图6.31 Create Design File form Selected Block选择图6.32 新建VHDL文本编辑窗口6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数

21、译码显示电路设计进制计数译码显示电路设计7.输入输入VHDL代码代码 将图6.32中的代码修改为所需要设计的代码,如图6.33所示。图6.33 counter16的VHDL代码6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计【例6.6】Counter16.vhd文件的VHDL描述 LIBRARY ieee;USE ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY counter16 IS PORT(clk:IN STD_LOGIC;en:IN STD_LOGIC;r

22、st:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 downto 0);END counter16;-接下页6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计ARCHITECTURE counter16_architecture OF counter16 IS -接上页signal q1:std_logic_vector(3 downto 0);BEGINprocess(clk,en,rst)beginif en=1 thenif rst=1 then q1=0000;elsif clkevent and clk

23、=1 then q1=q1+1;end if;end if;end process;qyyyyyyyyyyyyyyyyy=11111111;end case;end process;END bcd_decode_ ARCHITECTURE;6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计9.编译工程编译工程 单击水平工具条上的编译按钮 ,将所设计的工程项目counter_16进行编译。10.仿真仿真 创建波形矢量文件后分别进行功能仿真和时序仿真。其时序仿真结果如图6.35所示。图6.3516进制计数器电路序仿真波形图6.2自顶向下混合设计自顶向下混合设计6.2.2 16进制计数译码显示电路设计进制计数译码显示电路设计11.引脚分配、下载验证引脚分配、下载验证 对于本设计分配引脚,并在实验系统上验证其功能。具体步骤可根据实验室的EDA实验系统具体操作。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服