- 博客(18)
- 问答 (1)
- 收藏
- 关注
原创 HLS bram 接口 在空闲状态 RTL仿真出现 x 问题
1、当多个BRAM中,有两个BRAM端口同时访问同一块内部数据,RTL仿真 在空闲状态出现不定态。
2024-06-19 11:18:46 129
原创 HDL code 常用约束
ram_extract 是针对RAM的一项综合约束,它的作用是 是否从HDL code中提取RAM结构,采用该约束,编译器会对HDL code 进行分析,看内部是不是跟RAM功能吻合的结构,如果存在这种结构,将采用相对应的方案来实现RAM,否则很可能用寄存器的方式来实现这部分存储code。当启用安全模式实现状态机,当出现非法状态时,编译器会采用自身的规则选取状态机的某一个状态作为默认的恢复状态,这个状态有可能是初态、也有可能是上电后的默认状态,该约束就可以显示的说明这个状态。
2024-04-13 14:06:07 369
原创 双端口BRAM 分析
双端口BRAM 具有两套独立的时钟、数据、地址、控制信号,允许两套信号独立的对RAM进行随机地址访问。虽然双口BRAM两套接口都可以操作ram,但是操作的都是同一片空间。两套信号都可以对RAM进行读写操作。2、简单双端口BRAM。1、真双端口bram。
2024-04-11 11:52:11 143
原创 BRAM 读写模式分析
异步读模式不需要操作 en 信号,当we信号有效时,RAM写入当前的din,无论何时,dout都会根据addr输出bram中的数据,当读写冲突发生的时候,dout会先输出旧的值,写操做完成之后输出写入的值。是一种读、写互不干扰的模式,他的HDL code 描述如下。采用实际上是异步但表现上好似同步的方式读取BRAM中的数据。采用同步的方式从ram中读数据的操作模式。发生读写冲突时读优先的操作模式。发生读写冲突时、写优先的操作。
2024-04-11 10:16:37 221 1
原创 FPGA 的 复位
2、异步复位 的 复位信号控制的各个寄存器和复位信号信号源之间的 data_path delay层次不齐,当异步复位信号释放的时候,一部分寄存器在时钟有效沿之前完成复位,另一部分寄存器在时钟有效沿之后完成复位,会出现一个clk的偏差。在FPGA设计中,可以通过寄存器的复制来解决复位信号大扇出,假设FPGA中有1000个寄存器需要复位,可以对复位信号复制10个,每个衍生复位信号去复位附近的100个寄存器。只要复位信号到来,就立即执行复位操作,直到复位信号结束才停止复位,异步复位是持续的。
2024-04-10 10:38:44 700
原创 Verilog 赋值冲突 分析
在时序逻辑中、不存在真正的反馈,位于时序逻辑的串行语句中出现赋值冲突时,按照HDL 语言的执行思路,写在最后面的一条语句才是有效的。Verilog 的 变量 使用 为 一写 多读 ,赋值冲突 违反了 一写 ,多条赋值语句 对 同一变量赋值会导致赋值冲突产生。2、 反馈在前的组合串行逻辑赋值冲突。1、无反馈的组合串行逻辑赋值冲突。3、反馈在后的组合串行逻辑赋值。
2024-04-08 15:45:15 209
原创 HLS 1 + 1 = 1
对 1bit的临时变量 声明 bool 或者uint1(ap_uint<1>)都如此。u32 数 a,u32数 b,对 a b 做位加法 ,但是 有一个小demo 1 + 1 = 0;
2024-01-30 20:47:00 332
原创 coe语法
1111,1111,1111,1111,1111,0000,0101,0011,0000,1111,1111,1111,1111,1111,1111,1111;
2023-12-14 17:47:51 32
原创 hls for循环
verilog code FSM:增加 pipline之后,状态机增加一个end状态,end状态无条件切换到IDLE,在end状态 ip产生ap_done、ap_ready 为high,同时在loop之外,增加一个 initiation interval。若约束资源为simple bram,约束loop为unroll,状态增加为100个状态,每个状态写入一个数。demo发送一百个数,状态有50个状态,bram变成一个双口bram(A port B port),每个port输出50个数。
2023-12-04 14:33:39 44
原创 reset_project && reset_project -exclude ip
reset_project 用于重置当前项目重置为开始状态,清除在综合,模拟,实现和write_bitstream过程中创建的各种输出文件,包括临时文件。通过上面的操作之后,一些IP的文件操作,比如从别人哪里拷贝的工程,一些文件权限不够、之前生成了一些文件新编译后不能替换源文件等操作、一些不知名的报错,无法解决等问题,都可以通过上面的操作尝试解决。reset_project和reset_project -exclude ip。-exclude_ips : 不去清理IP 目录下的文件。
2023-05-10 11:38:50 82
空空如也
Microblaze is held in reset
2022-12-13
关于#ar#的问题,如何解决?
2022-06-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人