使用OSERDESE2原语实现7bit并行数据转为1bit串行数据,根据手册配置之后,发现串行数据无输出,经过参考其他设计,发现RST需要置地,可以修改为~rst_n,或者!rst_n,即可以正常输出;尝试修改为1’b0,输出异常,因为该port默认为高复位;初次使用时,容易在这个地方卡壳;下边是仿真ok的代码
`timescale 1ns / 1ps
module generate_for(
input sys_clk_i,
input ext_rst_n, //复位信号,低电平有效
output tx_clk_out
);
wire clk70m;
wire clk10m;
wire rst_n;
wire [6:0] clk_pattern = 7’b1100001;
clk_wiz_0 instance_name
(
// Clock out ports
.clk_out1(clk70m), // output clk_out1
.clk_out2(clk10m), // output clk_out2
// Status and control signals
.resetn(ext_rst_n), // input resetn
.locked(rst_n), // output locked
// Clock in ports
.clk_in1(sys_clk_i)); // input clk_in1
OSERDESE2 #(
.DATA_RATE_OQ(“SDR”), // DDR, SDR
.DATA_RATE_TQ(“SDR”), // DDR, BUF, SDR
.DATA_WIDTH(7), // Parallel data width (2-8,10,14)
.INIT_OQ(1’b0), // Initial value of OQ output (1’b0,1’b1)
.INIT_TQ(1’b0), // Initial value of TQ output (1’b0,1’b1)
.SER

本文介绍了如何使用Xilinx FPGA中的OSERDESE2原语将7bit并行数据转换为1bit串行数据。在配置过程中,强调了复位信号RST的重要性,指出必须置地,例如使用~rst_n或!rst_n,以确保正常输出。初学者常在此处遇到问题。提供了一个通过仿真的示例代码,展示了正确的OSERDESE2实例化和配置方法。
最低0.47元/天 解锁文章
8999





