基于HDL的设计输入 何宾 2011.09.

Slides:



Advertisements
Similar presentations
2014 年 10 月. 学生入学考试 15 位编号 号工号 ****** 北科 MBA 网址: 如: 初试密码为身份证 后六位,登录成功 后可进行修改。
Advertisements

什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
第2章 SOPC硬件开发环境及流程.
实验四 利用中规模芯片设计时序电路(二).
传统数字系统设计流程 设计目标 人工给出真值表 人工化简卡诺图 得到最简表达式 人工使用LSI电路实现 系统调试和验证.
第4章 VHDL设计初步.
在PHP和MYSQL中实现完美的中文显示
电工电子实验中心.
EPF10K10TI144-4晶片燒錄.
VHDL數位電路實習與專題設計 文魁資訊-UE301
VHDL數位電路實習與專題設計 文魁資訊-UE301
版权所有,禁止未经授权的商业使用行为 何宾 Tel: 北京中教仪装备技术有限公司.
EDA原理及应用 何宾
使用VHDL設計—4位元減法器 通訊一甲 B 楊穎穆.
EDA原理及应用 何宾
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
欢迎参加VHDL培训 VHDL培训教程 浙江大学电子信息技术研究所 电子设计自动化(EDA)培训中心
使用VHDL設計—向上&向下計數器 通訊一甲 B 楊穎穆.
7.5 时钟设计.
EDA 原理及应用 何宾
EDA原理及应用 何宾
SVN服务器的搭建(Windows) 柳峰
使用VHDL設計-XOR_GATE 通訊一甲 B 楊穎穆.
EDA 原理及应用 何宾
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
使用VHDL設計--Moore Machine
第一讲: 基本流程(1).
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
大作业要求 1、按照选题要求设计电路,并仿真、下载,实现电路。 2、撰写综合报告.
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
Windows 7 的系统设置.
第六章 VHDL设计共享.
第五章 VHDL主要描述语句.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
使用VHDL設計—4位元ALU電路 通訊一甲 B 楊穎穆.
Visual Studio 2010简捷入门.
第一次上机安排 第六周 第七周 周一晚(提高1、2,通信001~012) 周二上(通信014~085) 周四上(通信086~154)
第四章 团队音乐会序幕: 团队协作平台的快速创建
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
姚金宇 MIT SCHEME 使用说明 姚金宇
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
數位邏輯設計 VHDL.
Xilinx FPGA Design Flow
iSIGHT 基本培训 使用 Excel的栅栏问题
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
HSC高速输出例程 HORNER APG.
VRP教程 2011.
Delphi 7.0开发示例.
第7章 VHDL设计应用实例 7.1 8位加法器的设计 7.2 分频电路 7.3 数字秒表的设计.
Python 环境搭建 基于Anaconda和VSCode.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
回归分析实验课程 (实验三) 多项式回归和定性变量的处理.
基于列存储的RDF数据管理 朱敏
YOUR SUBTITLE GOES HERE
Programmable Logic System Design
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2013年5月28日
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
FPGA系统设计与实践 本章小结(第5章).
Programmable Logic System Design
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

基于HDL的设计输入 何宾 2011.09

该章主要是通过一个设计实例介绍基于HDL的设计流 程。 通过这个设计实例,读者可以掌握基于HDL语言的基 本设计流程。这个设计基于HDL语言和IP核。 本章是HDL基本设计流程的第一部分,当设计输入完 成后,应依次完成行为仿真、设计实现(翻译、映射和布 局布线)、时序仿真、下载和配置的基本设计流程。

基于HDL的设计输入-软件环境 下图给出了ISE的主界面窗口。ISE主界面分为4 个子窗口。

基于HDL的设计输入-软件环境 左上角的窗口是源文件窗口,设计工程所包括的文件 以分层的形式列出。 在该子窗口的下面是处理窗口,该窗口描述的是对于 选定的设计文件可以使用的处理流程。 在ISE主界面最下面是脚本窗口,在该窗口中显示了 消息、错误和警告的状态。同时还有Tcl脚本的交互和文 件中查找的功能。 在ISE的右上角是多文档的窗口,在该窗口可以查看 html的报告,ASCII码文件、原理图和仿真波形。通过选 择View->Restore Default Layout可以恢复界面的原始设 置。

基于HDL的设计输入-软件环境 1、源文件(source)子窗口 这个窗口有三个标签:源(Source)、Snapshots(快 照)、Library(库)。 源标签内显示工程名、指定的芯片和设计有关的文 档。在设计视图的每一个文件都有一个相关的图标,这个 图标显示的是文件的类型(HDL文件、原理图、IP核和文 本文件)。‘+’表示该设计文件包含了更低层次的设计模 块。 标签内显示的是目前所打开文件快照。一个快照是在 该工程里所有文件的一个拷贝。通过该标签可以察看报 告、用户文档和源文件。在该标签下所有的信息都是只读 的. 库标签内显示与当前打开工程相关的库。

在该窗口只有一个处理标签。该标签有下列功能: 增加已有文件; 创建新文件; 察看设计总结(访问符号产生工具,例化模板,察看 基于HDL的设计输入-软件环境 2、处理(process)子窗口 在该窗口只有一个处理标签。该标签有下列功能: 增加已有文件; 创建新文件; 察看设计总结(访问符号产生工具,例化模板,察看 命令行历史和仿真库编辑); 用户约束文件(访问和编辑位置和时序约束); 综合(检查语法、综合、察看RTL和综合报告); 设计实现(访问实现工具,设计流程报告和其它一些工具); 产生可编程文件(访问配置工具和产生比特流文件)

脚本子窗口有5个缺省的标签:Console,error, warnings , Tcl shell,find in file。 基于HDL的设计输入-软件环境 3、脚本(transcript)子窗口 脚本子窗口有5个缺省的标签:Console,error, warnings , Tcl shell,find in file。 1) Console标签显示错误、警告和信息。X表示错 误,!表示警告。 2) Warning标签只显示警告消息。 3) Error标签只显示错误消息。 4) Tcl shell标签是与设计人员的交互控制台。除了显 示错误、警告和信息外,还允许设计人员输入ISE特定命 令。 5) Find in file标签显示的是选择Edit>Find in File操作后 的查询结果。

基于HDL的设计输入-软件环境 4、工作区(Workspace)子窗口 工作区子窗口提供了设计总结、文本编辑器、ISE仿 真器/波形编辑器、原理图编辑器功能。 设计总结提供了关于该设计工程的更高级信息,包括 信息概况、芯片资源利用报告、与布局布线相关性能数 据、约束信息和总结信息等。 源文件和其它文本文件可以通过设计人员指定的编辑 工具打开。编辑工具的选择由Edit->Preference属性决定, 缺省的是ISE的文本编辑器,通过该编辑器可以编辑源文 件和用户文档,也可以访问语言模板。

基于HDL的设计输入-软件环境 通过ISE仿真器和波形编辑器创建和仿真测试平台。波 形编辑器提供了图形化的激励源和期望响应输出,然后产 生使用VHDL/Verilog语言描述的测试平台。 原理图编辑器集成在ISE中,原理图编辑器是采用图形 的方式创建和查看逻辑设计。

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

基于HDL的设计输入-工程建立

基于HDL的设计输入-工程建立 2、在Project Location域内,给出保存工程的路径; 3、在Project name域内,给出工程名wtut_vhd; 4、在Top-Level Source Type域内,选择HDL,单击下 一步。出现图6.3图形界面。 5、在Device Properties界面中,选择合适的产品范围 (product category)、芯片的系列(Family)、具体的芯 片型号(Device)、封装类型(Package)、速度信息 (speed),此外,在该界面中还要选择综合工具 (Synthesis Tool)、仿真工具(Simulator)和设计语言 (Preferred Language)。图6.3给出了示例中的参数配置;

基于HDL的设计输入-工程建立

6、连续两次用鼠标点击下一步按钮,出现图6.4添加 源文件的界面; 第6章 基于HDL的设计输入-工程建立 6、连续两次用鼠标点击下一步按钮,出现图6.4添加 源文件的界面;

在该界面中,点击“Add Source”按钮。添加下列文 基于HDL的设计输入-工程建立 在该界面中,点击“Add Source”按钮。添加下列文 件:clk_div_262k,lcd_control, statmach, stopwatch,并单击 open按钮; 7、单击下一步按钮,然后完成新工程的建立; 8、在确认所有的设计文件和Synthesis/Imp+Simulation关 联后,单击ok;

基于HDL的设计输入-工程建立 在Adding Source Files…界面

基于HDL的设计输入-设计描述 在该设计中,采用了层次化的、基于VHDL语言的设 计流程。表明该设计的顶层文件是由VHDL语言生成,而 顶层文件以下的其它模块可以用VHDL、原理图或IP核生 成。 该章将要对一个还没有设计完成的工程进行进一步的 处理,直到最终完成这个设计。通过这个设计流程,读者 可以完成并且产生其它模块。当设计完成后,就可以通过 仿真验证设计的正确性。

基于HDL的设计输入-设计描述 1、该设计有下面的输入信号: strtstop:启动和停止秒表; reset:复位秒表00:00:00状态,且秒表在时钟模式下; clk:外部输入时钟信号; mode:控制时钟和秒表模式。只有当时钟或定时器处于 未计数状态时,该信号才起作用; lap_load:这个信号有两个功能。在时钟模式下,显示当 前的时钟值。在定时器模式下,当定时器没有计数时, 从ROM中加载预设的值并显示;

基于HDL的设计输入-设计描述 2、该设计有下面的输出信号: lcd_e,lcd_rs,lcd_rw:这些控制信号用于控制 LCD的显示; sf_d[7:0]:向LCD显示提供并行数据;

clk_div_262k:将输入时钟进行262144的分频,将 26.2144MH时钟转换成占空比为50%的100Hz时钟信号。 基于HDL的设计输入-设计描述 3、该设计有以下功能模块: clk_div_262k:将输入时钟进行262144的分频,将 26.2144MH时钟转换成占空比为50%的100Hz时钟信号。 DCM1:数字时钟管理器的IP核,提供内部时钟反 馈、频率的输出控制和占空比的修正。CLKFX_OUT将 50MHz的时钟转换为26.2144MHz时钟输出。 Debounce:原理图模块实现秒表的strstop,mode,lap_load信号的去抖动。 lcd_control:对LCD的初始化和LCD的显示进行控制。

基于HDL的设计输入-设计描述 statmach:在状态图(State Digram)编辑器中定义和实现状态机模块,并控制秒表。 timer_preset:通过核产生器(core generator)产 生64X20的ROM,这个ROM在00:00:00到9:59:59的 范围内保存了64个预设置的时间。 time_cnt:在0:00:00到09:59:59的范围内以up/down 模式工作的计数器。这个模块有5个4比特的输出,用 来描述当前秒表的输出数字。

基于HDL的设计输入-添加设计和检查 在这个例子的完成过程中,将对HDL文件进行检查, 修改语法错误,并建立一个VHDL模块,添加IP核和时钟 模块,通过使用混合设计方法完成所有设计输入流程。所 有后面的设计流程都基于这个设计示例完成。 图6.5显示的是上面的工程建立完成后,在ISE主界面 的source子窗口的界面。从该图可以看到在设计工程中虽 然已经例化了timer_cnt模块,但没有该模块的HDL的描述 (文件旁有“?”标识)。为了添加该文件并进行检查,按 照下面的步骤将完成添加该文件并进行语法检查。

基于HDL的设计输入-添加设计和检查 1、选择project->Add Source,选择并打开time_cnt.vhd 文件,确保该模块与Synthesis/Imp+Simulation选项关联, 并单击ok按钮; 2、对该设计文件进行语法检查。在source子窗口,选 择time_cnt.vhd文件。在process子窗口单击‘+’,展开 Design Utility,并双击Check Syntax;

基于HDL的设计输入-添加设计和检查 图6.5 新建工程的源文件窗口 3、在检查语法的过程中,在Transcript子窗口中出现4个错误信息的提示。根据错误的提示信息修改文件,并保存,然后再次进行检查,直到没有语法错误为止。并保存文件。

基于HDL的设计输入-创建基于HDL的模块 本节将介绍使用ISE的文本编辑器VHDL语言创建模快。 使用VHDL语言创建的模块用于该秒表的去抖动功能。 1、选择Project>New Source,弹出图6.6的窗口,新文 件建立的导向窗口。

基于HDL的设计输入-创建基于HDL的模块 图6.6 新建文件窗口 在线逻辑分析仪 IP核生成向导 实现约束文件 原理图 状态图 仿真波形平台 Verilog模块 Verilog测试模块 VHDL模块 VHDL库 VHDL包 VHDL测试模块 嵌入式处理

基于HDL的设计输入-创建基于HDL的模块 在窗口左边选择VHDL Module,在File name下面 的输入框输入debounce文件名,然后点击下一步,出现 新文件向导对话框,此时可以进行下列选择,可以通过 该向导输入端口的名字和方向,选择是否总线,如果是 总线,还需要指明宽度。读者也可以在HDL文件中自己 输入,当使用在VHDL中手工添加这种方式的时候,直 接单击next按钮即可;否则需要在该界面内指定端口参 数。最后,单击完成(finish)按钮生成新文件;

基于HDL的设计输入-创建基于HDL的模块 新建文件向导窗口

基于HDL的设计输入-创建基于HDL的模块 2、如图6.8所示,在ISE的工作区空间,给出使用 ISE文件编辑器打开的debounce.vhd文件。可以看 出,Xilinx的ISE工具生成了VHDL基本结构框架, 这也是ISE具有强大设计功能的体现;

基于HDL的设计输入-创建基于HDL的模块 图6.8 ISE的文件编辑器界面

基于HDL的设计输入-创建基于HDL的模块 下面需要的是EDA设计人员需要将结构体空缺的下面 的代码的添加到结构体中间。 architecture debounce_arch of debounce is signal int1, int2, int3 : std_logic; begin sig_out<=sig_in or int1 or int2 or int3; process (clk) is

基于HDL的设计输入-创建基于HDL的模块 if rising_edge(clk) then int1 <= sig_in; int2 <= int1; int3 <= int2; end if; end process; end debounce_arch; 输入完毕并保存文件,并对该设计文件按照前面的方 法进行语法规则检查,直到综合完成为止,在综合过程 如果出现错误,则需要对输入的设计文件进行检查。

基于HDL的设计输入- IP核产生和例化 IP核生成器(IP core generator)是一个用户图形交互界 面工具,通过核产生器可以产生高层次设计模块,例如: 存储器、数学函数、通讯和I/O接口的IP核。设计人员可 以定制和优化这些IP核,这些IP核充分利用Xilinx的FPGA 结构特征,例如:快速进位逻辑、SRL16s和分布式块 RAM等。

基于HDL的设计输入-timer_preset模块的生成 在本节中,通过IP核产生器生成timer_preset模块。该模 块存储了64个值,这些值将来加载到定时器中。 1、在ISE主界面中选择Project->New Source,弹出New Source Wizard窗口,在该窗口中选择IP(Coregen & Architecture Wizard),在File name field中输入 timer_preset文件名,点击next按钮; 2、在弹出的New Source Wizard Select IP窗口,选择 Memory & Storage Elements。如图6.9所示,在该界面中选 择”RAMs & ROMs”,在展开项中选择distributed Memory Generator,点击next和finish按钮;

基于HDL的设计输入-timer_preset模块的生成 3、弹出6.10的界面,在该界面中选择ROM的Depth, 将其设置为64,然后选择Data Width,将其设置为20,然 后将存储器的类型Memory Type设置为ROM,点击下一 步; 4、将Input options和Output options设置为Non Registered(表示输入和输出不需要通 过锁存器进行锁 存,可以看到在该界面窗口的左面的a[5:0]和spo[19:0]呈 黑色显示,其余引脚呈灰色显示(黑色表示引脚在该次设 计中有效,灰色表示引脚在该次设计中无效);单击 finish按钮。在IP核产生器生成IP核后,产生下面的文件, 下面对这些文件的含义进行一些说明:

基于HDL的设计输入-timer_preset模块的生成 图6.9 IP选择界面

基于HDL的设计输入-timer_preset模块的生成 图6.10 分布式IP核产生器设置界面

基于HDL的设计输入-timer_preset模块的生成 5. 在该界面中,在“Cofficients File”选项后,点击 “Browse”按钮,在工程路径下选择definition1_timws.coe 文件作为该存储器的系数文件,用来给存储器写初始 值。

基于HDL的设计输入-timer_preset模块的生成 图6.12 核生成器-分布式存储器生成器定制GUI界面

基于HDL的设计输入-timer_preset模块的生成 timer_preset.vho/timer_preset.veo文件,这些文件是该IP 核的例化模板,通过这个例化模板就可以将IP核添加到该 设计中。 timer_preset.vhd/timer_preset.v文件,这些文件是IP核生 成的包装文件只用来仿真。 timer_preset.edn文件,该文件是网表文件,该文件在进 行网表翻译过程中使用。 timer_preset.xco文件,该文件保存了该模块的配置信 息,该文件作为源文件使用。 timer_preset.mif文件,该文件提供了为ROM仿真时的初 始设置。

基于HDL的设计输入-timer_preset模块的例化 当IP核生成后,下面将在设计中调用生成的IP核。 1) 在工程管理窗口,双击stopwatch.vhd文件,将其打 开。 2) 将光标移动到--Insert Core Generator ROM component declaration here。 3) 在ISE中选择File->open选项,选择timer_preset.vho,并 打开。 4) 将VHDL的声明部分代码复制,并通过粘贴插入到光 标所指的那一行下面。

基于HDL的设计输入-timer_preset模块的例化 component timer_preset port ( a: IN std_logic_VECTOR(5 downto 0); spo: OUT std_logic_VECTOR(19 downto 0)); end component; -- Synplicity black box declaration attribute syn_black_box : boolean; attribute syn_black_box of timer_preset: component is true;

基于HDL的设计输入-timer_preset模块的例化 5. 将该文件的例化部分的代码复制。 your_instance_name : timer_preset port map ( a => a, spo => spo);

基于HDL的设计输入-timer_preset模块的例化 6、然后,粘贴到设计的顶层文件的例化部分,然 后通过端口映射将该模块和设计相连。 t_preset : timer_preset port map ( a(5 downto 0)=> address(5 downto 0), spo(19 downto 0)=> preset_time(19 downto 0) ); 通过上面的步骤,该IP核模块就添加到该设计文件 中了。

基于HDL的设计输入-DCM模块的生成 DCM模块即数字时钟管理模块,在很多方面都有应 用,下面步骤将给出DCM的IP核生成过程: 1、在ISE主界面中选择Project->New Source,弹出New Source Wizard窗口,在该窗口中选择IP(Coregen & Architecture Wizard),在File name field中输入DCM1文件 名,点击next按钮; 2、如图6.9所示,在该界面中选择FPGA Features and Design,在展开项Spartan-3E,Spantan-3A的子项中选择 Single DCM SP v11.2 i,点击next和finish按钮;

基于HDL的设计输入-DCM模块的生成

基于HDL的设计输入-DCM模块的生成 3、弹出Xilinx Clock Wizard-General Setup界面,在 该界面进行下面的设置: 在“Input Clock Frequency”(输入时钟频率),输入50, 选择“MHz”; CLKIN Source(时钟输入源):External, Single Phase Shift(相位移动):NONE Feed back Source(反馈源):Internal Feedback Value(反馈值):1X

基于HDL的设计输入-DCM模块的生成 4. 然后单击“Advanced”按钮,选择“Wait for DCM lock before Done Signal goes high”(在Done信号变高 前,等待DCM锁定),点击“OK”按钮。 5. 点击“Next”按钮,然后再点击“Next”按钮; 6. 选择“Use output frequency”(使用输出频率),然后 输入26.2144,选择“MHz”。 7. 点击“Next”按钮,然后点击“Finish”按钮; 文件dcm1.xaw添加到工程源文件列表中。

基于HDL的设计输入-DCM模块的例化 1、在工程文件管理窗口,选择Source标签,选择 Dcm1.xaw文件。然后在处理子窗口选择View HDL Instantiation Template,并单击鼠标左键。 2、在workspace子窗口打开dcm1.vhi文件,将下面的代 码添加到设计文件stopwatch.vhd --Insert DCM1 component declaration here的下面。

基于HDL的设计输入-DCM模块的例化 COMPONENT dcm1 PORT( CLKIN_IN : IN std_logic; RST_IN : IN std_logic; CLKIN_IBUFG_OUT : OUT std_logic; CLK0_OUT : OUT std_logic; LOCKED_OUT : OUT std_logic ); END COMPONENT;

基于HDL的设计输入-DCM模块的例化 3、然后将下面的代码粘贴到stopwatch,vhd的例化部 分,即---- Insert DCM1 instantiation here的下面,并和 相应的端口连接。 dcm_inst : dcm1 port map (CLKIN_IN=>clk, RST_IN=>reset, CLKFX_OUT=>clk_26214k, CLKIN_IBUFG_OUT=>open, CLK0_OUT=>open, LOCKED_OUT=>locked);

习题 1、说明基于HDL语言的设计输入方法。 2、说明ISE软件平台的特点及其功能。 3、说明IP核的生成方法和例化方法。 4、完成一个基于VHDL设计输入的设计。