
FPGA
jerwey
这个作者很懒,什么都没留下…
展开
-
电路设计的一些概念
论述1(转)时序电路,生成触发器,触发器是有使能端的,使能端无效时数据不变,这是触发器的特性。组合逻辑,由于数据要保持不变,只能通过锁存器来保存。第一个代码,由于是时序逻辑,生成的触发器在enable无效时就可以保存数据。跟锁存器无关。第二个代码就是在enable为低时,数据不变,因此要生成锁存器。论述2(转)所谓生成latch其实是针对使用always语句描述一个组合逻辑而言。因为如果描述时序逻辑总是使用时钟或者时钟+复位作为敏感列表条件,所生成的电路总是组合逻辑+DFF;如果是描述组合逻辑原创 2023-03-23 21:43:36 · 2390 阅读 · 1 评论 -
vivado下ERROR: [USF-XSim-62] [VRFC 10-3180]
ERROR: [USF-XSim-62] ‘elaborate’ step failed with error(s). Please check the Tcl console output or ‘C:/workplace/VIVADO/resize/resize.sim/sim_1/behav/xsim/elaborate.log’ file for more information.ela...原创 2020-04-21 02:28:02 · 8645 阅读 · 4 评论 -
Native FIFO Constraints
#################################################################################------------------------------------------------------------------------------## Native FIFO Constraints ##------------原创 2022-01-24 10:55:21 · 460 阅读 · 0 评论 -
跨时钟域的设计
文章目录1.同步时钟2.异步时钟不同源同源但频率比不是整数倍同源虽频率比为整数倍但不满足时序要求3.跨时钟域传输:慢到快延迟打拍法延迟采样法4.跨时钟域传输:快到慢电平信号同步脉冲信号同步多位宽数据同步FIFO竞争冒险总结1.同步时钟数字设计中,一般认为,频率相同或频率比为整数倍、且相位相同或相位差固定的两个时钟为同步时钟。或者理解为,时钟同源且频率比为整数倍的两个时钟为同步时钟。同源同频同相位同源同频不同相位同源不同频但存在整数倍分频比2.异步时钟工作在异步时钟下的两个模块进行数据交互时,原创 2022-01-21 01:52:25 · 521 阅读 · 0 评论 -
Xilinx LogiCORE AXI Verification IP (VIP)
简介Xilinx LogiCORE AXI Verification IP (VIP)core是为了支持客户设计的基于AXI的IP的仿真而开发的。AXI VIP是未加密的SystemVerilog源代码,由SystemVerilog类库和可综合的RTL组成。PG267工作模式(VIP)核心的使用方式如下:生成 master AXI命令并写入负载生成 slave AXI读负载和写响应检查AXI事务的协议遵从性AXI VIP有三种配置模式:AXI master VIPAXI slave原创 2022-01-12 14:06:55 · 1878 阅读 · 0 评论 -
AXI总线
ZYNQ中的AXI接口共有9个,主要用于PS与PL的互联,包含以下三个类型:. AXI_ACP接口,是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。. AXI_HP接口,是高性能/带宽的AXI3.0标准的接口,总共有四个,PL模块作为主设备连接。主要用于PL访问PS上的存储器(DDR和On-Chip RAM). AXI_GP接口,是通用的AXI接口,总共有四个,包括两个32位主设备接口和两个32位从设备接口。详细参考h原创 2021-12-20 16:28:54 · 486 阅读 · 0 评论 -
Verilog 小模块
`define PACK_ARRAY(PK_WIDTH,PK_LEN,PK_SRC,PK_DEST) genvar pk_idx; generate for (pk_idx=0; pk_idx<(PK_LEN); pk_idx=pk_idx+1) begin assign PK_DEST[((PK_WIDTH)*pk_idx+((PK_WIDTH)-1)):((PK_WIDTH)*pk_idx)] = PK_SRC[pk_idx][((PK_WIDTH)-1):0]; end endgenerate原创 2021-12-09 15:49:07 · 166 阅读 · 0 评论 -
xilinx:复位模块
Processor System Reset Module : PG164interconnect_aresetn:提供互连的active-Low复位;peripheral_aresetn:提供外设的active-Low复位。实例端口描述原创 2021-08-24 18:15:49 · 2439 阅读 · 0 评论 -
zynq之ps端开发
ps端对DDR的读写/***************************************************************************//*@brief Performs an input operation for a memory location by reading from the specified address and returning the 8 bit Value read from that原创 2020-09-11 14:06:46 · 1141 阅读 · 0 评论 -
AXI - 4KB边界
AXI协议中burst不能跨4k边界.原因:系统中定义page的大小是4K协议中之所以规定一个burst不能跨越4K边界是为了避免一笔burst交易访问两个slave(每个slave的地址空间是4K/1K对齐的)。假如一个burst交易访问了两个slave A 和B(A在前B在后),那么只有A收到了地址和控制信息,而B不会收到地址和控制信息,因此只有A响应B并无响应,这就会导致此笔burst交易无法完成(B无法返回最后一笔transfer).所谓的4K边界是指低12bit为0的地址,例如32’h00.原创 2020-08-29 02:59:25 · 8139 阅读 · 1 评论 -
datamover core
The AXI DataMover IP core is a key building block with 4 KB address boundary protection, automatic burst partitioning, and provides the ability to queue multiple transfer requests using nearly the full bandwidth capabilities of the AXI4-Stream protocol.F.原创 2020-09-08 14:09:22 · 1695 阅读 · 0 评论 -
uboot 笔记
工具篇miniWigglerminiWiggler 是英飞凌面向未来的高性能、高性价比调试工具。在主机端,其具有 USB 接口,可以在每台计算机上使用。在设备端,通过英飞凌 10 引脚 DAP 或 16 引脚 OCDSL1 接口进行通信。miniWiggler 专门设计配合英飞凌的调试访问软件 (DAS)。调试、闪存编程Altium/TASKING 编译器Infineon DAVE™ BenchInfineon DAVE™ 3英飞凌 MemToolHitex HiTOP 调试器ARM K原创 2020-06-18 17:42:50 · 1041 阅读 · 0 评论 -
vivado 技巧
tcl第一步:生成tcl脚本;两种方法1.在vivado gui界面,File ->Project -> Write Tcl,选项默认,或根据自己需求更改;设置下tcl 脚本的输出路径 2.直接在shell窗口输入Tcl命令行生成 write_project_tcl g:/test.tcl ( 名字和路径自己决定) 第二步:更改脚本打开已经生成的tcl脚本文件,按照最上面的注释更改还原工程所需要的文件路径,自定义IP路径。第三步:运行脚本 1. 打开vivado shell原创 2020-06-10 20:44:00 · 891 阅读 · 0 评论 -
vivado之TCL
打开综合后的网表文件:open_run synth_1得到debug core:get_debug_coresopen_run impl_1report_timing_summary -name timing1set_param general.maxThreads 8原创 2020-06-10 20:42:48 · 509 阅读 · 0 评论 -
资源优化操作手册
1. 去除冗余的复位资源(1)仅对关键控制信号进行复位。关键控制信号是指模块中起着控制作用,它的异常会导致整个模块出现死锁或者严重错误的信号,这种控制信号通常是状态机。(2)通常的冗余复位信号包括RAM中的数据,被状态机使用的寄存器(不包括输入和输出信号)2. 化简if-else多重嵌套和多重条件赋值的逻辑链使用case语句代替;将if-else多重嵌套拆解为多个单if-else的语句;3. 化简复杂的比较逻辑使用的等价的“与或非”逻辑实现,避免出现大于或小于符号,仅使用==、!=;对与复杂原创 2020-06-10 20:37:49 · 338 阅读 · 0 评论 -
petalinux install
petalinux install1.新装系统后 需要设置su密码:方法 sudo passwd提示“Enter new UNIX password”退出root:su 用户名2 . 修改Ubuntu的软件源,改成国内的服务器地址,这里选择了aliyun,然后执行sudo apt-get updatesudo apt-get upgradedash->bash修改/bin/sh,因为ubuntu默认的“/bin/sh”是dash,需要修改成bash$ ls -al /bin/原创 2020-06-03 15:14:22 · 1389 阅读 · 1 评论 -
AXI_lite
https://www.cnblogs.com/milinker/p/6474706.html转载 2020-04-26 11:12:55 · 306 阅读 · 0 评论 -
verilog小技巧笔记
很多用法用过也容易忘记,以后在这里记录:Verilog里div_cnt == {16{1’b1}}是啥意思:16个1赋值给div_cnt原创 2020-04-21 17:46:35 · 2315 阅读 · 0 评论 -
一段式状态机实现_AXIS_Master
`timescale 1 ns / 1 psmodule myip_AXIS_Master_v1_0_M00_AXIS #( // Users to add parameters here // User parameters ends // Do not modify the parameters beyond this line // Width of S_AXIS addre...原创 2020-04-21 17:29:28 · 636 阅读 · 0 评论 -
verilog function
// Total number of output data localparam NUMBER_OF_OUTPUT_WORDS = 768; ...原创 2020-04-21 02:00:13 · 547 阅读 · 0 评论 -
AXI4-Stream Broadcaster
pg085将AXI4-Stream传输复制到多个 slaves• Replicates a master stream into multiple output slave streams.• Provides TDATA/TUSER remap functionality.• Supports 2-16 slaves.原创 2020-04-15 19:53:59 · 2549 阅读 · 4 评论 -
verilog常用系统函数以及例子
1.打开文件integer file_id;file_id = fopen(“file_path/file_name”);2.写入文件:fmonitor,fmonitor,fmonitor,fwrite,fdisplay,fdisplay,fdisplay,fstrobe//$fmonitor只要有变化就一直记录$fmonitor(file_id, “%format_char”, par...转载 2020-01-19 17:06:46 · 532 阅读 · 0 评论 -
verilog testbench
曾经写的一个tb`timescale 1ns / 1ps////////////////////////////////////////////////////////////////////////////////// Company: // Engineer://// Create Date: 20:02:30 10/12/2017// Design Name: Top...原创 2020-01-19 16:53:30 · 418 阅读 · 1 评论 -
Clock Skew , Clock Uncertainty和 Period
0. 引言 Intel 4790K的主频是4.0GHz,高通801的单核频率可达2.5GHz,A8处理器在1.2GHz,MSP430可以工作在几十MHz……这里的频率的意思都是类似的,这些处理器的频率都是厂商给定的。但是对于FPGA的工作频率而言却往往需要我们自己决定,在产品的设计初始就需要考虑FPGA工作在哪个频率,譬如250MHz。这个取值并不是瞎确定的,譬如如果定在1GHz,那显然...转载 2019-12-30 17:02:10 · 2279 阅读 · 0 评论 -
xf::cv::fast解析笔记...
template<int NMS,int SRC_T,int ROWS, int COLS,int NPC=1>void fast(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst_mat,unsigned char _th...原创 2019-12-20 17:59:00 · 1265 阅读 · 0 评论 -
FPGA开发使用硬件分析仪调试——VIO
前言学习FPGA的路上,相信很多人都有做过按键控制之类的程序,即通过按键来控制某一项功能的实现。在实际项目中,这一方法也经常被使用,比如我做完一个模块,仿真通过了,但是上层模块还没有完成,无法给我一些实际的激励,从而触发模块工作,于是工程便会卡在实际验证这一块了。所以很多人会选择使用外部按键来代替,通过一次按键给予一次脉冲激励,如果多个激励就使用多个按键来执行。不过理想很美好,现实很骨感呀,...转载 2018-11-26 18:51:04 · 7821 阅读 · 0 评论 -
关于Vivado综合属性:MAX_FANOUT
高扇出信号可能会因为布线拥塞而导致时序问题,常用的方法是通过寄存器复制以降低扇出,这可通过综合属性MAX_FANOUT实现。 MAX_FANOUT可应用于RTL代码中,也可以应用于XDC中,如下图所示。此外,MAX_FANOUT优先级高于-fanout_limit,且可作用于控制信号。 在使用MAX_FANOUT时可能会出现MAX_FANOUT不生效,可能的原...转载 2018-10-25 15:00:31 · 7885 阅读 · 1 评论 -
AXI简介
VIVADO中用户自定义IP核可以拥有AXI-Lite,AXI-FULL,AXI-Stream。AXI-Lite具有轻量级,结构简单的特点,适合小批量数据、简单控制场合。不支持批量传输,读写时一次只能读写一个字(32bit)。AXI4接口和AXI-Lite差不多,只是增加了一项功能就是批量传输,可以连续对一片地址进行一次性读写。上面两种均采用内存映射控制方式,即ARM将用户自定义IP编入某一地址进...转载 2018-05-12 14:13:11 · 437 阅读 · 0 评论