自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 利用Xilinx DDR3 IP 官方仿真文件做小实验

1、配置DDR3控制器、2、打开官方DDR3设计模板,3、生成PLL时钟管理单元4、添加自己的设计模块ddr_test,并且把 ddr_test 设置为顶层模块(“set as top”)5、综合后,进行引脚配置6、下载到板子,发现 led[1] 是一直暗的,表示 DDR3控制器的写入和读出的数据一致。led[0]是亮的,表示DDR3的初始化完成。

2023-11-09 22:30:00 219

原创 怎么把CSDN的文章导出为PDF(edge浏览器)

1、在想导出的文章空白处右键,然后点击“检查”2、点开“控制台” ,然后在空白处,复制粘贴提供的任意一段代码(文章后面提供)然后按“回车”键3、选择导出 PDF 便可。

2023-07-31 22:41:04 2404 5

原创 modelsim自动化仿真脚本的思路

一、在 windows 系统下先执行名字叫做 run_simulation.bat 的批处理文件这个文件的作用是:可以在批处理窗口选择需要仿真哪个模块,然后便调用仿真那个模块的 compile.do 文件二、compile.do 文件是 modelsim 的自动仿真脚本它首先会选取 名字叫 work 的仿真库,然后把设计代码文件 vlg_design.v 加入modelsim软件,接着把仿真代码 testbench_top.v 也加进modelsim软件 ,然后再 执行 wave.do文件。

2023-07-26 22:30:00 1017

原创 P5 组合逻辑电路容易出现毛刺,时序分析建立时间

出现了竞争冒险,导致了x,y不能同时为1,产生了错误的输出。假设在 红色粗线条处,a、b 应该是同时变化的,也就是 z1应该为1,z1的波形是一条值为1的直线,但是由于某些原因,导致a、b的变化不同步,导致 红色粗线条 处的 z1 波形出现了个凹槽,不再是平直的波形,这叫毛刺。“1”处表示的是时序逻辑,它会在时钟上升沿时,判断对应的 a、b 的值,例如图中是 0,1,则z2为1,并且维持一个时钟周期,直到下个时钟上升沿到来,再重新判断 a、b 的值来决定下一个时钟周期z2应该保持什么值。

2023-07-26 21:00:00 239

原创 Xilinx官方文档系列(二)Vivado Design Suite 用户指南:设计流程概述

您可以在 RTL 详细设计后、综合后或实现后执行设计分析和分配约束。为了及早发现设计问题,可以在实现之前执行设计分析,包括时序仿真、资源估算、连接分析和 DRC。您可以打开各种综合或实现运行结果进行分析和约束分配。这就是所谓的打开设计。

2023-07-21 21:00:00 723

原创 Xilinx官方文档系列(一)查找官方文档

进入官网地址后,点击红色的文档编号便可以学习对应的官网内容。

2023-07-19 20:30:00 460

原创 modelsim使用(查看波形)

局部进行放大或缩小,首先鼠标点击需要放大的地方,将黄色竖线定位其上:鼠标箭头放在黄色竖线左边,并滑动鼠标滚轮,即向左放大,同理鼠标箭头放在黄色竖线右边,并滑动鼠标滚轮即向右放大。六、隐藏信号路径 七、改变显示单位 八、放大局部信号 九、改变进制。一、改变波形颜色 二、增加波形间距 三、取消软件默认的白色线条。四、 不常用的工具从工具栏取消显示 五、添加光标并且锁定。可以多次重复这三步。四、 不常用的工具从工具栏取消显示。

2023-07-18 20:30:00 2389

原创 Lesson38 图像传感器介绍与设计架构

图像传感器介绍:这是CMOS图像传感器的基本功能框图。外界光源照射像素阵列,发生光电效应,在像素单元内产生相应的电荷。行选通译码器在定时与控制电路的控制下,定时选通相应的行像素单元,行像素单元内的图像信号通过各自所在列的信号总线传输到对应的模拟信号处理单元以及A/D转换器,转换成数字图像信号输出。行选通译码器可以对像素阵列逐行扫描或隔行扫描。行选通译码器与列选通译码器配合使用可以实现图像的窗口提取功能。模拟信号处理单元的主要功能是对信号进行放大处理,并且提高信噪比。

2023-07-17 23:21:20 223

原创 Lesson39 时钟拓扑、PLL配置与例化

FPGA外部的晶振是50MHZ,它内部的PLL模块要产生这些时钟:①、25MHZ的时钟提供给传感器sensor②、50MHZ的时钟提供给FPGA内部的图像缓存模块③、75MHZ的时钟提供给FPGA内部的显示驱动模块④、75MHZ@180°的时钟提供给FPGA外部的DAC芯片(型号ADV7123)⑤、200MHZ提供给DDR3控制IP。

2023-07-17 23:20:13 356

原创 Lesson40 FIFO的配置与使用

即 25m的时钟上升沿触发后,才有信号,而第2000ns处没有上升沿,要再等待20ns才出现25m时钟的上升沿,所以综上所述,在第2020ns之前,输入的信号都处于初值。“实现”方式可以选择。标出的地方,“1”是第一个上升沿,“2”是以末尾上升沿为一个repeat,“3“是在第640个repeat的末尾上升沿处,fifo_wren拉高,然后延迟1000个时间单位。5、由于复位信号,FIFO的状态信号,它们的切换过程是需要时间的,不是立刻切换后,就能达到稳定信号的,所以在每次切换时,最好给一定的时间。

2023-07-17 23:18:02 576

原创 基于modelsim的自动仿真环境(tequan)

解释一下脚本的意思:①、title FPGA Auto Simulation batch script 设置窗口显示的名字 ②、echo ModelSim simulation 第一行内容 ③、echo. 空一行 ④、echo Press '1' to start simulation 显示的内容 ⑤、代码片段1,如果输入为 1 ,则跳转到 run1 代码块 ⑥、代码片段2,“vism”的意思: 在系统的环境变量中,②、IP : 如果配置使用的IP生成后,则需要对生成的IP进行编译。

2023-07-14 23:00:00 449

原创 modelsim在vivado的配置(tequan)

目的:由于在 vivado 里面,我们经常会用到很多的 vivado IP核,所以我们提前把 vivado IP核的模型编译后,提交到 modelsim 里面,这样 modelsim 才有 vivado IP核模型。在这个被注释的代码下面,找到未被注释的代码,复制。把vivado IP库里面的文件编译后,保存在第一步建立的文件夹中,大概需要半个小时。然后保存文件,把文件关闭。5、重新打开 modelsim ,便可以发现,modelsim 的 Library 里面出现了刚才编译的 vivado ip 库。

2023-07-14 22:00:00 833

原创 notepad++最新版安装以及配置vivado(tequan)

3、输入的内容是 notepad++ 的安装路径。注意.exe和[file name]之间有空格。1、安装好notepad++.8.5.4 除了修改安装位置,其他均默认。4、这样点击代码文件便弹出 notepad++ 编辑器了。安装图片的步骤进行配置。

2023-07-14 21:45:00 466 1

原创 安装modelsim_se_2020.4 以及可能出现的问题

5、至此,modelsim安装完成,而且也可以使用脚本实现自动仿真了,不过要注意脚本,当使用脚本 -novopt 时,要把它替换成 -voptargs=+acc。5、将下载的文件里Crack1文件夹下的win64文件夹下的两个文件一起复制到modelsim的安装目录,并选择替换目标文件,如下图所示。操作:在桌面新建一个名字叫 test 的 bat文件,然后鼠标右键用 notepad++ 打开,写入下面的代码,然后保存。3、双击 test.bat 文件,则脚本开始运行,但是弹窗的内容出现错误。

2023-07-14 21:00:00 2954 4

原创 modelsim卸载

3、这句话的意思是还有一些文件没有卸载(因为这些是之前复制进去的破解文件,所以要手动去卸载这些文件)6、到环境变量去把和 modelsim 有关的设置都删除。然后就彻底删除干净了。5、回到之前装 modelsim 的文件夹,把我们破解过程的文件也卸载掉。1、在控制面版找到 Mentor Graphice,鼠标右击卸载。4、再次提示你是不是真的要卸载,当然 YES,等待卸载结束。2、选择要卸载的 modelsim ,然后 next。7、可以开始装新版本了。

2023-07-14 20:00:00 4006 3

原创 SDRAM中前置CAS的理解(RL=AL+CL)

按照要求②,蓝色ACT和蓝色READ之间,有个 tRCD=4 的延迟,所以蓝色READ应该出现在图中所示位置。而在READ命令发出后,读出的数据要经过一段时间(CL),才能出现在输出端。发现是 常规情况下,ACT和READ之间有时间间隔,即行激活和列激活(CAS)之间有延迟(tRCD),容易让其他指令闯进来。①、让每个时钟上升沿都有对应的指令执行,而不会像常规的情况下,上升沿1、3、5 指令是空闲的。RL(AL+CL)指的是:前置CAS的情况下,读指令发出后到输出端产生信号的延时。仔细分析冲突产生的原因。

2023-07-06 20:30:00 165 1

原创 Git的下载、安装和使用超详细版(windows系统、码云)

①、Git 有本地仓库和远程仓库之分。远程仓库是项目负责人操控,本地仓库是开发成员操控。蓝色则是被 Git 控制的部分。黄色是不被 Git 控制的部分。②、接到项目时,项目负责人先建立一个远程仓库。然后组内的每个开发成员都把远程仓库克隆到本地仓库,再开始写代码文件。开发成员在 workspace 写代码文件时,要 add、commit 到本地仓库。然后先 pull 最新的代码文件,再 push 本地仓库的代码文件到远程仓库。

2023-07-02 20:07:44 1568 1

原创 Gvim的最新版安装和配置步骤(适合新手)(windows系统)

第一个文件夹vim90存放的是软件默认的配置文件,比如颜色配置,字体配置,插件等。第二个文件夹vimfiles里面是空文件夹,如果我们要添加Gvim没有的插件或者颜色字体之类的配置,就可以在网站上下载,然后复制到这个文件夹里。GVIM的配置有两种方式,第一是直接修改 文件_vimrc 第二是先把插件下载好,复制到文件夹vimfiles对应的位置,然后再修改 文件_vimrc。Vim和Gvim的功能是一样的,只不过对于windows用户来说,Gvim有菜单界面操作,用Gvim会熟悉一些。

2023-06-18 14:19:16 6488

原创 Xilinx文档学习系列之一如何查找vivado中文文档

左侧可以自己筛选要看的资料类型,然后再在搜索框输入,出现的文档日期是该文档的最新变动的日期,可以自己下拉选择对应的文档版本。在学习Vivado这个开发平台时,会遇到很多的问题。看图中这二十多个文件都有编号,直接点击编号会跳到对应的文件。选择vivado design suite、用户指南,然后点击搜索。三、有一些文件是英文的,英文不好的话,可以把文件下载后,去这个网站。比如在搜索框输入 “用户指南”,然后会出来一堆相关的资料。二、跳出的这个界面也可以重新筛选要看的资料。翻译成中文后下载,再自己对照英文看。

2023-06-11 16:17:43 816

原创 Vivado综合属性系列一、ASYNC_REG

reg1的输出到reg2,reg2输出到Q,即reg1->reg2->Q,对reg2和Q设置ASYNC_REG。将会直接放进单个SLICE/CLB(如果寄存器同时带有ASYNC_REG和IOB属性,IOB将优先于ASYNC_REG,寄存器将会被存放至ILOGIC block)。get_property ASYNC_REG $register //获取具有属性ASYNC_REG的寄存器,第二条命令执行后可知只有第1、3个寄存器Q_reg,reg2_reg具有属性ASYNC_REG,符合设计要求。

2023-06-10 13:15:11 915

原创 块RAM(BRAM)

对于RTL电路来说,有没有这条语句(* ram_style = "block" *)生成的电路图都一样,因为RTL电路只是描述功能,还没有映射到FPGA上。一、(* ram_style = "block" *) 这个语句说明了使用“block”生成RAM。这条语句指综合实现时,使用FPGA的“block”生成RAM,看电路图确实如此。

2023-06-10 11:12:05 473

原创 分布式ROM(dis_rom)

一个LUT6可以配置两个LUT4。一共有七个LUT4,所以需要四个LUT6(最后一个LUT6只配置一个LUT4)一、带使能端的位宽为8,深度为16的分布式ROM。

2023-06-10 10:47:53 66

原创 分布式RAM(dis_ram)

1、图中RAM32X 1S的输入端 A3A2A1A0 分别对应 addr的 addr[3] addr[2] addr[1] addr[0] RAM32X 1S的输入端共有2*2*2*2=16种情况,所以可以对应16个数据,即深度为16。2、图中的LUT2控制RAM32X 1S的使能端,只有we和en同时为1,LUT2才输出1 (可以在cell properties窗口下面的truth table查看真值表)4、分析实现后的电路。

2023-06-10 10:20:15 350

原创 带使能端的环形计数器

同步使能,即有使能信号也还不行,还要有时钟上升沿,在enable=1 之后的第一个上升沿才会进行环形计数。异步置位 ,rst_n=0时,则D触发器的Q端是 0001 ,即 count = 4'b0001。环形计数器,0001→0010→0100→1000→0001。

2023-06-02 21:19:22 137

原创 常规计数器

3、不清零且使能(rst_n=1,cnt_en=1),第一个时钟上升沿未到前,D端是1,但是Q端仍是0。但是在引用计数模块时,可以加个set信号,让它在 不清零且使能(rst_n=1,cnt_en=1)后(第八个上升沿时,out为8)的第九个上升沿判断out是否为8,如果是,则让out=0,且set=1。5、对电路图总结:不清零且使能(rst_n=1,cnt_en=1)后的第一个上升沿开始,到第十个上升沿结束,即out=1、2、3、4、5、6、7、8、0 各维持一个时钟周期。这样便是9个时钟周期。

2023-06-02 21:15:24 77

原创 扭环形计数器

cnt的位宽是4,cnt[3:0],使用扭环形计数器可以表示8种 cnt 状态,分别是0000 1000 1100 1110 1111 0111 0011 0001 0000 1000。相邻的两个数据,高三位直接平移到第三位,最低位取反后平移到最高位。它有一个非常明显地好处,相邻两组数只有一位不同,具体如下例子所示,因此在计数过程中不会存在竞争冒险问题。从电路图可以看出,在时钟上升沿还没到前,把Q端的4bit数据分成两路处理,Q端数据的高三位(cnt[3:1])平移到。

2023-06-02 21:14:24 1729

原创 VL23 ROM的简单实现

①深度为8,指的是有8个寄存器,所以声明ROM时,必须是[7:0],表示有8个寄存器。8个寄存器可以存8个数据,地址线只要3根便可以对应这8个数据,所以input [2:0]addr ②input [7:0]addr综合出来的电路,尽管电路输入端显示的是addr[7:0],但是,多路选择器的控制端仍然只用到addr[2:0],显示S[2:0],所以多出来的地址线没有用!描述:实现一个深度为8,位宽为4bit的ROM,数据初始化为0,2,4,6,8,10,12,14。

2023-05-31 23:32:45 215 1

原创 VL20 用数据选择器实现逻辑函数

S1为1,~S1&(~S0&D0 | S0&D1),变成,(~S0&D0 | S0&D1)。S0为0时,Y是D0;S0为0时,Y是D2;~S1为0,0“与”任何数都为0,所以 ~S1 & (~S0&D0 | S0&D1) 这部分的值为0,即输出Y和D0D1S0无关;S1为0,0“与”任何数都为0,所以 S1 & (~S0&D2 | S0&D3) 这部分的值为0,即输出Y和D2D3S0无关;L的第一项对应Y的第四项 L的第二项也可以对应Y的,把L的第一第二项合并,则可以对应Y的第四项。

2023-05-30 01:08:43 440 1

原创 VL19 使用38译码器实现逻辑函数

一、题目请使用3-8译码器①和必要的逻辑门实现函数L=(~A)C+AB可在本题答案中添加并例化3-8译码器①代码,3-8译码器①代码如下:wire E;endmodule。

2023-05-29 21:06:22 1080 1

原创 非阻塞赋值的理解

要计算 2 处上升沿的 out 值,这条语句(out <= c + d;但是在2上升沿处,第一条语句还没有执行完,d值还没有产生,第二条语句没有对应的 d 值,out的值怎么计算?再执行第二条语句(即我们理解成先算出 d 的结果,再将 d 的结果带入第二条语句,算出 out 的结果)这种理解,是阻塞赋值的思想(阻塞赋值即,只有先执行完前面的语句,才能执行后面的语句。在2处的上升沿,a=1,b=1, d <= a + b(1+1=10) 所以。但是,上面两条语句是非阻塞赋值,非阻塞赋值的两条语句会同时执行!

2023-05-14 20:01:20 34

原创 notepad++的Verilog语法检查(调用modelsim的语法)

七、我们发现,每次修改代码后,都要重新点击保存,才能按Fn+F6键进行语法检查,这样有些麻烦。(图1.是我自己在D盘创建的一个文件夹project_mux,用来存放步骤一modelsim生成的文件,图2.可以看到,这个work文件下有六个文件,它们是modelsim语法检查的工具)按Fn+F6键(有的电脑只按F6就可以了),然后便弹出我们之前的那段代码,点击ok,便开始语法检查。保存后,按Fn+F6键(有的电脑只按F6就可以了),然后便弹出我们之前的那段代码,点击ok。写完代码后,我们要进行保存。

2023-05-13 00:20:05 2157 3

原创 modelsim的详细使用方法和容易出现的问题!(适用初学者)

这个帖子最初是为了解决modelsim的work在编译后,还是empty的问题。后来想想,还是记录一下使用modelsim的方法吧,可能也会有人遇到和自己一样的问题。

2023-05-12 19:47:11 13158 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除