1 / 41

基于原理图的设计输入

基于原理图的设计输入. 何宾 2011.09. 基于原理图的设计输入 - 本章概要. VHDL 语言的出现使得许多 PLD 设计都是基于 VHDL 的 设计流程,但是基于原理图的设计也有着重要应用。例 如,对于一个简单数字系统设计而言,顶层文件使用原理 图设计,这样做设计比较直观,容易理解,要比使用 HDL 例化语句描述简单。该章还是通过秒表的设计示例介绍基 于原理图的设计流程。 在这里需要说明的是,一个有经验的 EDA 设计人员, 会使用基于 HDL 语言、原理图和 IP 核的混合设计方法完成

umeko
Download Presentation

基于原理图的设计输入

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 基于原理图的设计输入 何宾 2011.09

  2. 基于原理图的设计输入-本章概要 • VHDL语言的出现使得许多PLD设计都是基于VHDL的 • 设计流程,但是基于原理图的设计也有着重要应用。例 • 如,对于一个简单数字系统设计而言,顶层文件使用原理 • 图设计,这样做设计比较直观,容易理解,要比使用HDL • 例化语句描述简单。该章还是通过秒表的设计示例介绍基 • 于原理图的设计流程。 • 在这里需要说明的是,一个有经验的EDA设计人员, • 会使用基于HDL语言、原理图和IP核的混合设计方法完成 • 设计,这些设计方法可能使用在设计的各个模块中,而不 • 会只局限在顶层模块中。

  3. 基于原理图的设计输入-工程建立 • 在建立工程前,需要将示例文件从光盘上拷到创建工程 • 的路径下。该设计完成一个比赛用的秒表计时器。(设计 • 文件通过http://china.xilinx.com/support /techsup /tutoria • ls/tutorials11.htm资源下载)。下面给出基于原理图设计 • 流程的工程建立步骤: • 1、在桌面上双击ISE 11图标,或者在开始菜单->所 • 有程序->XilinxISE11->Project Navigator。在ISE主界面 • 中选择File->New Project。如图7.1所示,桌面出现下面 • 的界面;

  4. 图7.1 创建新工程的界面 基于原理图的设计输入-工程建立

  5. 基于原理图的设计输入-工程建立 • 2、在Project Location域内,由设计人员给出保存工程 • 的路径; • 3、在Project name域内,由设计人员给出工程名 • wtut_sc; • 4、在Top-Level Source Type域内,选择原理图 • Schematic,单击下一步; • 如图7.2所示,桌面出现下面的界面;

  6. 基于原理图的设计输入-工程建立

  7. 基于原理图的设计输入-工程建立 • 5、在Device Properties界面中,选择合适的产品范围 • (Product Category)、芯片的系列(Family)、具体的芯 • 片型号(Device)、封装类型(Package)、速度信息 • (Speed),此外,在该界面中还要选择综合工具 • (Synthesis Tool)、仿真工具(Simulator)和设计语言 • (Preferred Language)。图7.2给出了示例中的参数配置; • 6、连续两次用鼠标点击下一步按钮,然后在界面 • “New Project Wizard-Add Existing Source Windows”中点击 • “Add Source”(添加源文件)按钮

  8. 基于原理图的设计输入-工程建立

  9. 基于原理图的设计输入-工程建立 • 7. 在该界面中,点击“Add Source”按钮。将路径定位 • 到c:\xilinx\11.1\ISE\ISExamples\ wtut_sc;选择并添加下 • 列文件: • cd4rled.sch • ch4rled.sch • clk_div_262k.vhd • lcd_control.vhd • stopwatch.sch • statmach.vhd

  10. 基于原理图的设计输入-工程建立 • 8. 点击“Next”按钮,然后单击“Finish按钮,这样 • 完成新工程的建立; • 9、如下图所示,确认所有设计文件的 • Association选项为“ALL”,Library选项为“work”。

  11. 基于原理图的设计输入-工程建立

  12. 基于原理图的设计输入-设计描述 • 在该设计中,采用了层次化的、基于原理图的设计方 • 法。该设计的顶层文件是由原理图生成,而顶层文件下面 • 的其它模块可以用VHDL语言、原理图或IP核生成。该设 • 计就是完成一个还未完成的工程。通过这个设计流程,读 • 者可以完成和产生其它的模块。当设计完成后,可以通过 • 仿真验证设计的正确性。图7.4给出了该设计完整的顶层 • 原理图描述。该例子的输入、输出信号和功能模块与前一 • 章的例子完全一样。

  13. 图7.4 完整的顶层原理图的界面 基于原理图的设计输入-设计描述

  14. 基于原理图的设计输入-设计描述 • 在这个基于分层的设计中,读者可以建立各种类型的 • 模块,其中包括基于原理图输入模块、基于HDL输入模 • 块、基于状态图输入模块和基于IP核输入模块。通过该示 • 例,EDA设计人员可以详细学习建立每一种模块的方法, • 并且学习如何将这些模块连接在一起构成一个完整的设 • 计。

  15. 基于原理图的设计输入-原理图编辑器操作 • 原理图模块由模块符号和符号的连接组成。下面的步骤 • 将通过ISE的原理图编辑器(Schematic Editor)介绍建立 • 基于原理图设计time_cnt模块的过程: • 1、在ISE主界面下,选择Project->New Source,出现图 • 7.5的New Source对话框界面。在该界面左边选择 • Schematic选项,在File Name中输入time_cnt,单击next按 • 钮,然后单击Finish按钮,建立新原理图模块; • 2、在ISE工作区子窗口,出现原理图编辑窗口,点击鼠 • 标右键,然后选择Object Properties,将图纸尺寸(Size) • 改成D=34x22。点击ok按钮; • 通过上面步骤,建立一个time_cnt原理图输入界面;

  16. 基于原理图的设计输入-原理图编辑器操作

  17. 基于原理图的设计输入-添加I/O符号 • I/O符号用来确定模块的输入/输出端口,通过下面的步 • 骤可以创建模块的I/O符号: • 1、在原理图编辑器界面内,选择Tools>Create I/O • markers.,显示创建I/O marker对话框; • 2、如图7.5所示,在Inputs下输入q(19:0),load, up,ce, clk, • clr,在output下输入hundredths(3:0),tenths(3:0), sec_lsb(3:0), • sec_msb(3:0),minutes(3:0),点击OK;

  18. 图7.5 I/O marker建立界面 基于原理图的设计输入-添加I/O符号

  19. 基于原理图的设计输入-添加原理图元件 • 通过符号浏览器(Symbol Brower)可以看到对于当前 • 设计所用芯片可以使用的元件名字和符号(这些符号按字 • 母顺序排列)。这些元件符号可以用鼠标直接拖到原理图 • 编辑器中。下面给出添加原理图元件的步骤: • 1、在原理图编辑器的界面内,选择Add->Symbol或者 • 在工具栏中点击Add Symbol图标。如图7.6所示,在原理 • 图编辑器窗口左边,打开符号浏览器(Symbol Brower)。 • 在设计路径下,选择cd4rled,该元件是4比特双向可加载 • 的BCD计数器;

  20. 基于原理图的设计输入-添加原理图元件 • 2、选择cd4rled元件,用鼠标将其拖入编辑器窗口内。 • 如图7.7所示,再添加3个这样 • 的元件到编辑界面中,同时添加 • AND2b1,ch4rled和AND5元件到 • 编辑器窗口内;

  21. 图7.7 原理图的元件放置

  22. 基于原理图的设计输入-添加连线 • 1、在元件编辑器界面内,选择Add>wire或者在工具栏 • 中点击Add wire图标; • 2、点击AND2B1的输出,拖动连线到cd4rled元件的CE • 引脚。此时在两个引脚之间建立连线; • 3、点击AND5元件输出,拖动连线到AND2b1反向输入 • 引脚。此时在两个引脚之间建立连线;

  23. 图7.7 元件编辑窗口界面 基于原理图的设计输入-添加连线

  24. 基于原理图的设计输入-添加连线 • 4、分别将load,up,clk和clr输入和五个计数器模块的 • L,UP,C,R引脚连接,将前一个计数器CE0和下一个计数器 • CE连接; • 通过以上4个步骤就可以完成元件之间的线连接,下面 • 将介绍通过总线连接元件的方法。

  25. 基于原理图的设计输入-添加总线符号 • 添加总线包括添加总线符号和与总线连接的比特位的连 • 接。下面给出建立总线hundredths(3:0), tenths(3:0), • sec_lsb(3:0), sec_msb(3:0)和minutes(3:0)连接的步骤: • 1、分别选择上面的总线输出符号; • 2、选择Add>wire或者在工具栏中点击Add wire图标,从 • 这些端口拖出总线连接线,按图7.8所示,引出这些总线 • 的连接线;

  26. 图7.8 完整的总线连接界面 基于原理图的设计输入-添加总线符号

  27. 基于原理图的设计输入-添加总线符号 • 3、当添加操作结束时,按ESC键放弃总线连接操作; • 4、下面将要把比特端口和总线连接,选择Add>Bus Tap • 或者在工具栏中点击Add BusTap图标。 • 5、从原理图编辑器左边的Option标签中选择--<Right选 • 项,这样做是为了将元件和总线很好的连接。 • 6、单击hundreths(3:0),将bus Tap标记放在总线上,下 • 面要进行selected bus name和Net name 的操作。将五个计 • 数器对应的Bus Tap标记分别放在总线相应的位置上。如 • 图7.8所示,需要在5条总线上放4个Bus Tap标记。 • 7、选择Add>wire或者在工具栏中点击Add wire图标, • 分别从5个计数器的Q0~Q3分别引出四个连接线,注意不 • 要和Bus Tap连接。

  28. 基于原理图的设计输入-添加总线符号 • 8、在工具条中,选择Add Net Name图标,在原理图编 • 辑器的Option标签内,选择Name the branch’s net选项,并 • 输入需要连接的比特端口名字,形式为:总线名字(索引 • 号),然后将光标移动到相对应比特端口的连接线上,此 • 时名字就添加在连线上。 • 9、完成上述总线命名后,将这些比特端口连接线和Bus • Tap标记连接。经过上面的步骤后完成比特端口和总线的 • 连接。 • 10、按照上面几节的描述步骤,完成所有输入和输出端 • 口和元件的连接,最后选择tools->Check Schematic,对设 • 计的原理图进行检查,修改错误,当没有错误后,将该原 • 理图保存。

  29. 创建模块及相关模块原理图--创建time_cnt模块原理图创建模块及相关模块原理图--创建time_cnt模块原理图 • 当设计完成后,下面创建该原理图的RTL符号描述。这 • 个RTL符号是该原理图的例化描述。当创建完RTL原理图 • 后,就可以将该符号添加到顶层的原理图设计文件中。下 • 面给出创建time_cnt.sch原理图的步骤: • 1)在工程管理窗口(Source window),选择 • time_cnt.sch文件; • 2)在处理窗口(Process window),选择+ Design Utilties • 并将其展开,下面工具将以分层列表的方式显示。 • 3)双击Create Schematic Symbol选项。

  30. 创建模块及相关模块原理图--创建核生成器模块及原理图创建模块及相关模块原理图--创建核生成器模块及原理图 • 按照第6章使用核生成器(Core Generator)生成 • timer_preset模块的步骤生成该模块。按照第6章使用核生 • 成器(Core Generator)生成dcm1模块的步骤生成该模 • 块。下面给出生成dcm1模块原理图的步骤: • 1)在工程管理窗口的Source标签下,选择dcm1.xaw ; • 2)在process(处理)窗口下,双击“Create Schematic • Symbl ”按钮来生成dcm1的原理图。

  31. 创建模块及相关模块原理图--创建基于HDL模块及原理图创建模块及相关模块原理图--创建基于HDL模块及原理图 • 按照第六章的步骤创建debounce.vhd模块。下面 • 给出创建该模块原理符号的步骤: • 1)在工程管理窗口(Source window),选择 • debounce.vhd文件; • 2)在处理窗口(Process window),选择+ Design • Utilties并将其展开,下面工具将以分层列表的方式 • 显示。 • 3)双击Create Schematic Symbol选项。 • 重复上面的过程生成statemach.vhd模块的原理图;

  32. 顶层模块原理图的设计-放置模块到原理图 • 现在将statmath,timer_preset,dcm1和debounce符 • 号放到stopwatch.sch原理图界面中,双击stopwatch.sch • 打开原理图编辑器界面,下面给出放置这些符号到原 • 理图界面的步骤: • 1)选择Add->Symbol或者从工具栏中点击“Add • Symbol”图标。这将打开原理图编辑器的符号浏览器 • (Symbol Browser),该浏览器显示了库和这些库中的 • 相关的元件; • 2)在符号浏览器中,查看可使用的库元件; • 3)在Categories窗口,通过选择工程目录来找到具 • 体工程中的宏符号;

  33. 顶层模块原理图的设计-放置模块到原理图 • 4)如图7.9所 • 示,选择合适的原理 • 图,添加到stopwatch • 原理图中合适的位 • 置。 • 5)保存原理图。

  34. 顶层模块原理图的设计-修改例化名字 • 当在原理图中放置符号后,每个符号有一个唯一的 • 名字,名字以“XLXI_”开始。为了使这些模块在源文件 • 中更好理解,使用下面的步骤修改符号的例化名字: • 1、右击dcm1符号,然后从出现的菜单中选择 • “Object Properties”; • 2、修改InstName域的值为dcm_inst,点击“OK”;

  35. 顶层模块原理图的设计-修改例化名字 • 重复步骤1和2修改下面的符号例化名字: • statmach模块例化名字timer_state • 上面debounce模块例化名字lap_load_debounce • 中间debounce模块例化名字mode_debounce • 下面debounce模块例化名字strtstop_debouce • timer_preset模块例化名字t_preset • time_cnt模块例化名字timer_cnt

  36. 顶层模块原理图的设计-层次展开/退出 • 执行层次“Push down”(展开),可以使设计者看到 • 原理图层次的更底层文件,下面给出从顶层stopwatch.sch • 原理图展开time_cnt的步骤: • 1、在原理图界面中点击time_cnt符号,如图7.10选择 • Hierarchy Push图标。也可以点击右键,选择Symbol>Push • into Symbol。可以看到该模块的内部结构; • 2、当查看完内部结构后,通过选择View>Pop to • Calling Schematic,或者选择Hierarchy Pop图标,返回上一 • 级的模块原理符号,该操作为“Pop”(退出)操作。

  37. 图7.10 添加I/O符号到所标记的网络 顶层模块原理图的设计-层次展开/退出

  38. 顶层模块原理图的设计-分配引脚位置 • Xilinx推荐使用自动的布局布线(PAR)程序定义 • 设计的引出引脚。预分配引脚的位置有时可能降低 • PAR工具的性能。然而,在一些时候必须锁定设计的 • 引出引脚,这样可以能够集成到印刷电路板PCB上。 • 下面给出stopwatch原理图上输出网络的LOC参数的 • 步骤: • 1. 右击clk网络,从弹出的菜单选择“Object • Properties”; • 2. 在图7.11的界面中,点击“New”按钮,添加新的 • 属性;

  39. 图7.11 分配引脚位置 顶层模块原理图的设计-分配引脚位置

  40. 顶层模块原理图的设计-分配引脚位置 • 3. 输入LOC作为属性名字,然后输入E12作为 • “Value”的值; • 4. 点击“OK”返回到“Object Properties”对话框; • 5. 为了看到LOC属性,选择LOC属性旁边的 • “Add”按钮。 • 6. 在“Net Attribute Visibility”(网络属性可见) • 窗口中,在接近显示中心的位置点击一下,然后点击 • “OK”按钮。将要在原理图上显示LOC属性。 • 7. 点击“OK”按钮,关闭“Object Properties”窗 • 口。按照图7.8完成原理图剩余的设计。

  41. 习题 • 1、说明基于原理图的设计输入方法。 • 2、举例说明状态图的设计方法。 • 3、建立一个基于原理图的设计工程。

More Related