OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 327|回复: 1

[XILINX] *mark_debug = "true"* 时钟域错误

[复制链接]

30

主题

188

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2014-4-3
在线时间
74 小时
发表于 2024-8-5 20:35:02 | 显示全部楼层 |阅读模式
1金钱
达芬奇例程 20_ip_fifo,*mark_debug = "true"*  时钟域错误,检查原理图,FIFO读出的数据连到写钟域的u_ila_0模块去了,读与写在不同的时钟域,怎样才能将 FIFO读出的数据 连到读时钟域的u_ila_1模块?
ILA.jpg

module ip_fifo(
    input    sys_clk ,  // 系统时钟信号
    input    sys_rst_n  // 系统复位信号
);

//wire define
wire         clk_50m       ;  // 50M时钟
wire         clk_100m      ;  // 100M时钟
wire         locked        ;  // 时钟锁定信号
wire         rst_n         ;  // 复位,低有效
(*mark_debug = "true"*) wire         wr_rst_busy   ;  // 写复位忙信号
(*mark_debug = "true"*) wire         rd_rst_busy   ;  // 读复位忙信号
(*mark_debug = "true"*) wire         fifo_wr_en    ;  // FIFO写使能信号
(*mark_debug = "true"*) wire         fifo_rd_en    ;  // FIFO读使能信号
(*mark_debug = "true"*) wire  [7:0]  fifo_wr_data  ;  // 写入到FIFO的数据
(*mark_debug = "true"*) wire  [7:0]  fifo_rd_data  ;  // 从FIFO读出的数据
(*mark_debug = "true"*) wire         almost_full   ;  // FIFO将满信号
(*mark_debug = "true"*) wire         almost_empty  ;  // FIFO将空信号
(*mark_debug = "true"*) wire         full          ;  // FIFO满信号
(*mark_debug = "true"*) wire         empty         ;  // FIFO空信号
(*mark_debug = "true"*) wire  [7:0]  wr_data_count ;  // FIFO写时钟域的数据计数
(*mark_debug = "true"*) wire  [7:0]  rd_data_count ;  // FIFO读时钟域的数据计数

//通过系统复位信号和时钟锁定信号来产生一个新的复位信号
assign   rst_n = sys_rst_n & locked;

//例化PLL IP核
clk_wiz_0 clk_wiz_0 (
    // Clock out ports
    .clk_out1(clk_50m ),  // output clk_out1
    .clk_out2(clk_100m),  // output clk_out2
    // Status and control signals
    .locked  (locked  ),  // output locked
    // Clock in ports
    .clk_in1 (sys_clk )   // input clk_in1
);     

//例化FIFO IP核
fifo_generator_0  fifo_generator_0 (
    .rst           (~rst_n       ),  // input wire rst
    .wr_clk        (clk_50m      ),  // input wire wr_clk
    .rd_clk        (clk_100m     ),  // input wire rd_clk
    .wr_en         (fifo_wr_en   ),  // input wire wr_en
    .rd_en         (fifo_rd_en   ),  // input wire rd_en
    .din           (fifo_wr_data ),  // input wire [7 : 0] din
    .dout          (fifo_rd_data ),  // output wire [7 : 0] dout
    .almost_full   (almost_full  ),  // output wire almost_full
    .almost_empty  (almost_empty ),  // output wire almost_empty
    .full          (full         ),  // output wire full
    .empty         (empty        ),  // output wire empty
    .wr_data_count (wr_data_count),  // output wire [7 : 0] wr_data_count   
    .rd_data_count (rd_data_count),  // output wire [7 : 0] rd_data_count
    .wr_rst_busy   (wr_rst_busy  ),  // output wire wr_rst_busy
    .rd_rst_busy   (rd_rst_busy  )   // output wire rd_rst_busy
);

//例化写FIFO模块
fifo_wr  u_fifo_wr (
    .wr_clk        (clk_50m     ), // 写时钟
    .rst_n         (rst_n       ), // 复位信号
    .wr_rst_busy   (wr_rst_busy ), // 写复位忙信号
    .fifo_wr_en    (fifo_wr_en  ), // fifo写请求
    .fifo_wr_data  (fifo_wr_data), // 写入FIFO的数据
    .empty         (empty       ), // fifo空信号
    .almost_full   (almost_full )  // fifo将满信号
);

//例化读FIFO模块
fifo_rd  u_fifo_rd (
    .rd_clk       (clk_100m    ),  // 读时钟
    .rst_n        (rst_n       ),  // 复位信号
    .rd_rst_busy  (rd_rst_busy ),  // 读复位忙信号
    .fifo_rd_en   (fifo_rd_en  ),  // fifo读请求
    .fifo_rd_data (fifo_rd_data),  // 从FIFO输出的数据
    .almost_empty (almost_empty),  // fifo将空信号
    .full         (full        )   // fifo满信号
);

endmodule

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2012

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5615
金钱
5615
注册时间
2018-10-21
在线时间
1590 小时
发表于 2024-8-6 09:09:28 | 显示全部楼层
在综合界面的Setup Debug界面可以选择时钟域
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表