《LINUX系统 Design Vision综合指导》由会员分享,可在线阅读,更多相关《LINUX系统 Design Vision综合指导(10页珍藏版)》请在金锄头文库上搜索。
1、Design_vision 实验指导书(计数器)实验指导书(计数器) 2008.12.9 张春 一、文件准备.1 二、综合.3 启动 Design Vision.3 检查配置.4 读入 RTL 代码.4 设置互连线模型Wire Load.5 设置时钟约束.5 综合.6 检查综合结果Area.7 检查综合结果Timing.8 保存综合结果.8 三、TCL 方式运行 DC.9 四、源文件 demo-counter.vhd.10 本文档旨在说明使用 DV(Design_vision)完成综合实验的操作,在原理上未作详细说 明,如果在原理上有任何疑问,请参考其他文档书籍。 一、文件准备一、文件准备 1
2、 建立工作目录和临时文件目录 在 LINUX 系统下打开一个控制台窗口,建立用来进行实验的项目目录(例如 test) ,命 令如下: 。 cd 进入用户的根目录 mkdir test 建立 test 目录 cd test 进入 test 项目目录 mkdir work 建立用于保存各种临时文件的 work 目录 pwd 显示当前目录,确认没有错误 ls 显示当前目录下的所有文件 2 准备 RTL 级源代码 本实验使用的设计是一个 4 位计数器,在/home/ic/data/目录下已经有参考源代码,可以 把它直接拷贝到当前工作目录,命令如下: pwd 确认当前目录是 test 项目目录下 cp
3、/home/ic/data/demo-counter.vhd . 把参考源代码拷贝到当前目录(即最后的“.” ) ls 再次确认拷贝了文件 3 准备配置文件 本次实验使用的标准单元库文件位于/home/ic/library 目录下, 其中 typical.db 是目标工艺 库文件,umc18.sdb 是符号库文件。 编写保存在项目目录(test)下配置文件.synopsys_dc.setup 来设置库文件的位置(注意, 这个文件的文件名以“.”开头,表示是隐藏文件,只能用“ls -a”命令看到) 。文件内容如 下: 该文件的第一行定义了综合工具产生的各种中间文件将保存在项目目录下的work目录
4、, 第二、三行定义了目标库文件,第四行定义了符号库文件。 在/home/ic/data 目录下已经写好了一个参考的配置文件 synopsys_dc.setup.ref,可以把它 直接拷贝到项目目录里,然后把文件名修改为.synopsys_dc.setup,具体命令如下: define_design_lib work path “./work” set target_library /home/ic/library/typical.db set link_library * /home/ic/library/typical.db set symbol_library /home/ic/libra
5、ry/umc18.sdb pwd 确认当前目录是 test 项目目录下 cp /home/ic/data/synopsys_dc.setup.ref . 把参考配置文件贝到当前目录(即最后的“.” ) ls 再次确认拷贝了文件 mv synopsys_dc.setup.ref .synopsys_dc.setup 把文件名改成.synopsys_dc.setup ls 配置文件是隐藏文件,所以看不到 ls a 增加-a 参加,就可以看到配置文件了 cat .synopsys_dc.setup 显示配置文件的内容 二、综合二、综合 启动启动 Design Vision design compil
6、er 有四种运行方式, 我们使用支出 TCL 的图形界面 Design Vision, 启动命 令如下: Design Vision 的界面如下图所示,有三个主要窗口:层次化浏览窗口(Hierarchy) 、控 制台窗口(Console)和命令行窗口(Command Line) 。 pwd 确认当前目录是 test 项目目录下 design_vision use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is port( clk,rst : in std_logic; q : buffer std_logic_vector(3 downto 0); end; architecture arch of counter is begin process(clk,rst) begin if rst=1 then q=x“0“; elsif clkevent and clk=1 then q = q + 1; end if; end process; end;