[原创]Modelsim后仿真
因调试需要,进行后仿真,ISE生成的sim文件和sdf文件
`timescale ns/ ps module lut_dly (
clkout, fpga_clk, config_in
);
output clkout;
input fpga_clk;
input [ : ] config_in;
wire clk_in;
wire dly1;
wire config_in_4_IBUF_49;
wire config_in_5_IBUF_50;
wire dly2_0;
wire dly3;
wire config_in_2_IBUF_53;
wire config_in_3_IBUF_54;
wire dly4_0;
wire dly5;
wire config_in_0_IBUF_57;
wire config_in_1_IBUF_58;
wire dly2;
wire dly1_pack_1;
wire dly4;
wire dly3_pack_1;
wire clkout_OBUF_129;
wire dly5_pack_1;
wire \config_in<>/INBUF ;
wire \config_in<>/INBUF ;
wire \config_in<>/INBUF ;
wire \config_in<>/INBUF ;
wire \config_in<>/INBUF ;
wire \config_in<>/INBUF ;
wire \clkout/O ;
wire \fpga_clk/INBUF ;
wire VCC;
initial $sdf_annotate("lut_dly_timesim.sdf");
X_BUF #(
.LOC ( "SLICE_X88Y0" ))
\dly2/XUSED (
.I(dly2),
.O(dly2_0)
);
X_BUF #(
.LOC ( "SLICE_X88Y0" ))
\dly2/YUSED (
.I(dly1_pack_1),
.O(dly1)
);
X_LUT4 #(
.INIT ( 'h8888 ),
.LOC ( "SLICE_X88Y0" ))
u_lut6 (
.ADR0(clk_in),
.ADR1(config_in_5_IBUF_50),
.ADR2(VCC),
.ADR3(VCC),
.O(dly1_pack_1)
);
X_BUF #(
.LOC ( "SLICE_X88Y1" ))
\dly4/XUSED (
.I(dly4),
.O(dly4_0)
);
X_BUF #(
.LOC ( "SLICE_X88Y1" ))
\dly4/YUSED (
.I(dly3_pack_1),
.O(dly3)
);
X_LUT4 #(
.INIT ( 'h3C0C ),
.LOC ( "SLICE_X88Y1" ))
u_lut4 (
.ADR0(VCC),
.ADR1(dly2_0),
.ADR2(config_in_3_IBUF_54),
.ADR3(clk_in),
.O(dly3_pack_1)
);
X_BUF #(
.LOC ( "SLICE_X89Y0" ))
\clkout_OBUF/YUSED (
.I(dly5_pack_1),
.O(dly5)
);
X_LUT4 #(
.INIT ( 'h3838 ),
.LOC ( "SLICE_X89Y0" ))
u_lut2 (
.ADR0(clk_in),
.ADR1(config_in_1_IBUF_58),
.ADR2(dly4_0),
.ADR3(VCC),
.O(dly5_pack_1)
);
X_IPAD #(
.LOC ( "PAD685" ))
\config_in<>/PAD (
.PAD(config_in[])
);
X_BUF #(
.LOC ( "PAD685" ))
config_in_0_IBUF (
.I(config_in[]),
.O(\config_in<>/INBUF )
);
X_BUF #(
.LOC ( "PAD685" ))
\config_in<>/IFF/IMUX (
.I(\config_in<>/INBUF ),
.O(config_in_0_IBUF_57)
);
X_IPAD #(
.LOC ( "PAD686" ))
\config_in<>/PAD (
.PAD(config_in[])
);
X_BUF #(
.LOC ( "PAD686" ))
config_in_1_IBUF (
.I(config_in[]),
.O(\config_in<>/INBUF )
);
X_BUF #(
.LOC ( "PAD686" ))
\config_in<>/IFF/IMUX (
.I(\config_in<>/INBUF ),
.O(config_in_1_IBUF_58)
);
X_IPAD #(
.LOC ( "PAD683" ))
\config_in<>/PAD (
.PAD(config_in[])
);
X_BUF #(
.LOC ( "PAD683" ))
config_in_2_IBUF (
.I(config_in[]),
.O(\config_in<>/INBUF )
);
X_BUF #(
.LOC ( "PAD683" ))
\config_in<>/IFF/IMUX (
.I(\config_in<>/INBUF ),
.O(config_in_2_IBUF_53)
);
X_IPAD #(
.LOC ( "PAD681" ))
\config_in<>/PAD (
.PAD(config_in[])
);
X_BUF #(
.LOC ( "PAD681" ))
config_in_3_IBUF (
.I(config_in[]),
.O(\config_in<>/INBUF )
);
X_BUF #(
.LOC ( "PAD681" ))
\config_in<>/IFF/IMUX (
.I(\config_in<>/INBUF ),
.O(config_in_3_IBUF_54)
);
X_IPAD #(
.LOC ( "PAD688" ))
\config_in<>/PAD (
.PAD(config_in[])
);
X_BUF #(
.LOC ( "PAD688" ))
config_in_4_IBUF (
.I(config_in[]),
.O(\config_in<>/INBUF )
);
X_BUF #(
.LOC ( "PAD688" ))
\config_in<>/IFF/IMUX (
.I(\config_in<>/INBUF ),
.O(config_in_4_IBUF_49)
);
X_IPAD #(
.LOC ( "PAD682" ))
\config_in<>/PAD (
.PAD(config_in[])
);
X_BUF #(
.LOC ( "PAD682" ))
config_in_5_IBUF (
.I(config_in[]),
.O(\config_in<>/INBUF )
);
X_BUF #(
.LOC ( "PAD682" ))
\config_in<>/IFF/IMUX (
.I(\config_in<>/INBUF ),
.O(config_in_5_IBUF_50)
);
X_OPAD #(
.LOC ( "PAD680" ))
\clkout/PAD (
.PAD(clkout)
);
X_OBUF #(
.LOC ( "PAD680" ))
clkout_OBUF (
.I(\clkout/O ),
.O(clkout)
);
X_IPAD #(
.LOC ( "PAD684" ))
\fpga_clk/PAD (
.PAD(fpga_clk)
);
X_BUF #(
.LOC ( "PAD684" ))
u_ibufg (
.I(fpga_clk),
.O(\fpga_clk/INBUF )
);
X_BUF #(
.LOC ( "PAD684" ))
\fpga_clk/IFF/IMUX (
.I(\fpga_clk/INBUF ),
.O(clk_in)
);
X_LUT4 #(
.INIT ( 'h0FA0 ),
.LOC ( "SLICE_X88Y0" ))
u_lut5 (
.ADR0(clk_in),
.ADR1(VCC),
.ADR2(config_in_4_IBUF_49),
.ADR3(dly1),
.O(dly2)
);
X_LUT4 #(
.INIT ( 'h3C30 ),
.LOC ( "SLICE_X88Y1" ))
u_lut3 (
.ADR0(VCC),
.ADR1(config_in_2_IBUF_53),
.ADR2(dly3),
.ADR3(clk_in),
.O(dly4)
);
X_LUT4 #(
.INIT ( 'h0AF0 ),
.LOC ( "SLICE_X89Y0" ))
u_lut1 (
.ADR0(clk_in),
.ADR1(VCC),
.ADR2(dly5),
.ADR3(config_in_0_IBUF_57),
.O(clkout_OBUF_129)
);
X_BUF #(
.LOC ( "PAD680" ))
\clkout/OUTPUT/OFF/OMUX (
.I(clkout_OBUF_129),
.O(\clkout/O )
);
X_ONE NlwBlock_lut_dly_VCC (
.O(VCC)
);
endmodule `timescale ps / ps module glbl (); parameter ROC_WIDTH = ;
parameter TOC_WIDTH = ; wire GSR;
wire GTS;
wire PRLD; reg GSR_int;
reg GTS_int;
reg PRLD_int; //-------- JTAG Globals --------------
wire JTAG_TDO_GLBL;
wire JTAG_TCK_GLBL;
wire JTAG_TDI_GLBL;
wire JTAG_TMS_GLBL;
wire JTAG_TRST_GLBL; reg JTAG_CAPTURE_GLBL;
reg JTAG_RESET_GLBL;
reg JTAG_SHIFT_GLBL;
reg JTAG_UPDATE_GLBL; reg JTAG_SEL1_GLBL = ;
reg JTAG_SEL2_GLBL = ;
reg JTAG_SEL3_GLBL = ;
reg JTAG_SEL4_GLBL = ; reg JTAG_USER_TDO1_GLBL = 'bz;
reg JTAG_USER_TDO2_GLBL = 'bz;
reg JTAG_USER_TDO3_GLBL = 'bz;
reg JTAG_USER_TDO4_GLBL = 'bz; assign (weak1, weak0) GSR = GSR_int;
assign (weak1, weak0) GTS = GTS_int;
assign (weak1, weak0) PRLD = PRLD_int; initial begin
GSR_int = 'b1;
PRLD_int = 'b1;
#(ROC_WIDTH)
GSR_int = 'b0;
PRLD_int = 'b0;
end initial begin
GTS_int = 'b1;
#(TOC_WIDTH)
GTS_int = 'b0;
end endmodule
SDF文件
(DELAYFILE
(SDFVERSION "3.0")
(DESIGN "lut_dly")
(DATE "Sun Mar 22 15:04:04 2015")
(VENDOR "Xilinx")
(PROGRAM "Xilinx SDF Writer")
(VERSION "K.31")
(DIVIDER /)
(VOLTAGE 1.425)
(TEMPERATURE )
(TIMESCALE ps)
(CELL (CELLTYPE "X_BUF")
(INSTANCE dly2\/XUSED)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE dly2\/YUSED)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_LUT4")
(INSTANCE u_lut6)
(DELAY
(ABSOLUTE
(PORT ADR0 ( ))
(PORT ADR1 ( ))
(IOPATH ADR0 O ( ))
(IOPATH ADR1 O ( ))
(IOPATH ADR2 O ( ))
(IOPATH ADR3 O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE dly4\/XUSED)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE dly4\/YUSED)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_LUT4")
(INSTANCE u_lut4)
(DELAY
(ABSOLUTE
(PORT ADR1 ( ))
(PORT ADR2 ( ))
(PORT ADR3 ( ))
(IOPATH ADR0 O ( ))
(IOPATH ADR1 O ( ))
(IOPATH ADR2 O ( ))
(IOPATH ADR3 O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE clkout_OBUF\/YUSED)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_LUT4")
(INSTANCE u_lut2)
(DELAY
(ABSOLUTE
(PORT ADR0 ( ))
(PORT ADR1 ( ))
(PORT ADR2 ( ))
(IOPATH ADR0 O ( ))
(IOPATH ADR1 O ( ))
(IOPATH ADR2 O ( ))
(IOPATH ADR3 O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in_0_IBUF)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in\<\>\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in_1_IBUF)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in\<\>\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in_2_IBUF)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in\<\>\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in_3_IBUF)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in\<\>\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in_4_IBUF)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in\<\>\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in_5_IBUF)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE config_in\<\>\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_OBUF")
(INSTANCE clkout_OBUF)
(DELAY
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE u_ibufg)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE fpga_clk\/IFF\/IMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
(CELL (CELLTYPE "X_LUT4")
(INSTANCE u_lut5)
(DELAY
(ABSOLUTE
(PORT ADR0 ( ))
(PORT ADR2 ( ))
(PORT ADR3 ( ))
(IOPATH ADR0 O ( ))
(IOPATH ADR1 O ( ))
(IOPATH ADR2 O ( ))
(IOPATH ADR3 O ( ))
)
)
)
(CELL (CELLTYPE "X_LUT4")
(INSTANCE u_lut3)
(DELAY
(ABSOLUTE
(PORT ADR1 ( ))
(PORT ADR2 ( ))
(PORT ADR3 ( ))
(IOPATH ADR0 O ( ))
(IOPATH ADR1 O ( ))
(IOPATH ADR2 O ( ))
(IOPATH ADR3 O ( ))
)
)
)
(CELL (CELLTYPE "X_LUT4")
(INSTANCE u_lut1)
(DELAY
(ABSOLUTE
(PORT ADR0 ( ))
(PORT ADR2 ( ))
(PORT ADR3 ( ))
(IOPATH ADR0 O ( ))
(IOPATH ADR1 O ( ))
(IOPATH ADR2 O ( ))
(IOPATH ADR3 O ( ))
)
)
)
(CELL (CELLTYPE "X_BUF")
(INSTANCE clkout\/OUTPUT\/OFF\/OMUX)
(DELAY
(PATHPULSE ())
(ABSOLUTE
(IOPATH I O ( ))
)
)
)
)
顶层仿真文件
`timescale 1ns / 1ps
module tb_dly;
reg clk_in;
reg [:] sel_in;
wire clk_out;
lut_dly uut(
.fpga_clk (clk_in ),
.config_in (sel_in ),
.clkout(clk_out)
); initial
begin
clk_in =; #
sel_in = 'd32;
#
sel_in = 'd16;
#
sel_in = 'd8;
#
sel_in = 'd4;
#
sel_in = 'd2;
#
sel_in = 'd1; end always #(/) clk_in <= ~clk_in;
endmodule
do文件
vlib work
vlog +acc tb_dly.v vlog +acc lut_dly_timesim.v
vlog +acc C:/Xilinx/ISE/verilog/src/glbl.v
vsim -novopt -t 1ps -L UNISIMS_VER -L UNIMACRO_VER -L UNI9000_VER -L SIMPRIMS_VER -L XILINXCORELIB_VER -L SECUREIP -L AIM_VER -L CPLD_VER -L UNISIM -L UNIMACRO -L SIMPRIM -L XILINXCORELIB -L AIM -L PLS -L CPLD -lib work tb_dly glbl
log -r /*
Modelsim仿真波形如下







[原创]Modelsim后仿真的更多相关文章
- ISE联合modelsim功能仿真和综合后仿真1
1.代码输入 (1).新建一个ISE工程,名字为count4. (2).新建一个verilog文件 (3).选择verilog module 输入file name为count4,单击next默认知道 ...
- ISE联合modelsim功能仿真和综合后仿真
1.代码输入 (1).新建一个ISE工程,名字为count4. (2).新建一个verilog文件 (3).选择verilog module 输入file name为count4,单击next默认知道 ...
- modelsim 独立仿真vivado的IP核及仿真脚本
Modelsim独立仿真vivado的IP 最近一直在做local dimming项目的FPGA硬件实现,算法的其中一步就是直方图统计,即数字图像的某一灰度级的像素数,这个直方图的源码找了半天才搞到, ...
- 【转】Quartus II调用modelsim无缝仿真
Quartus II调用modelsim无缝仿真 ★emouse 思·睿博客文章★ 原创文章转载请注明:http://emouse.cnblogs.com 本篇文章为转载,写的不错,最近在学mode ...
- ISE和Modelsim联合仿真(转)
相信很多人会遇到过这个问题,不知如何让ISE调用Modelsim进行仿真.我也迷糊了不少时间,查查找找,终于弄明白了,所以有了本文,和大家分享一下.我尽量讲得详细点儿,多多上图. 我的环境:Windo ...
- 基于脚本的modelsim自动化仿真笔记
这里记录一下基于脚本的modelsim自动化仿真的一些知识和模板,以后忘记了可以到这里查找.转载请标明出处:http://www.cnblogs.com/IClearner/ . 一.基本介绍 这里介 ...
- Modelsim独立仿真Vivado Clocking Wizard IP Core
工欲善其事,必先利其器.在使用Vivado自带的仿真软件仿真的时候,相对于更优秀的仿真工具Modelsim,效率低了很多,为了更高效的开发,我尝试着用Vivado级联Modelsim仿真,但是级联后还 ...
- Viavdo&ISE&Quartus II级联Modelsim级联仿真
博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...
- 搭建Modelsim SE仿真环境-使用do文件仿真
本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera ...
随机推荐
- Custom DNS on Ubuntu 18.04LTS server
1. Edit resolved config file nano /etc/systemd/resolved.conf 2. Replace #DNS into DNS DNS=9.9.9.9 1. ...
- Nginx安装及使用
安装 设置安装位置 切换到root下安装:CentOS: #su root Ubuntu: #sudo su 切换文件夹: #cd /usr/local/src/ 安装编译环境 ububtu平台编 ...
- @Controller @RestController
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1) 如果只是使用@RestController注解Controller,则Co ...
- 基于Redis的分布式锁真的安全吗?
说明: 我前段时间写了一篇用consul实现分布式锁,感觉理解的也不是很好,直到我看到了这2篇写分布式锁的讨论,真的是很佩服作者严谨的态度, 把这种分布式锁研究的这么透彻,作者这种技术态度真的值得我好 ...
- redis实现分页
redis实现分页功能,主要是将数据缓存起来,无需频繁查询数据库,减少数据库的压力. 适用场景:单用户操作列表界面分页,如博客列表. 缺点:不可模糊查询,缺少灵活性. 封装类: class XgRed ...
- [面试]死锁-最简单的死锁demo
死锁 什么是死锁 (百度百科) 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁 ...
- 三步法搞定CTF中的SQL注入题型
三步法: 一.找到注入点 二.Fuzz出未过滤字符 三.构造payload/写脚本 例题1 打开题目: 第一步,寻找注入点. 输入用户名123456,密码123456,返回结果username err ...
- Ext.net按钮事件中使用Response.Redirect的一个问题
今天遇到一个Response.Redirect问题 通过Ext.net按钮写发送事件时,连接中会多出一个&,如果后台不进行UrlEncode操作的话,就会出问题,可是很不幸的是,有些跳转 ...
- E. Vanya and Balloons Codeforces Round #355 (Div. 2)
http://codeforces.com/contest/677/problem/E 题意:有n*n矩形,每个格子有一个值(0.1.2.3),你可以在矩形里画一个十字(‘+’形或‘x’形),十字的四 ...
- Python实现身份证号码有效性验证
# -*- coding: utf-8 -*- import re #Errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!' ...