微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog的一点问题,求大神帮忙

verilog的一点问题,求大神帮忙

时间:10-02 整理:3721RD 点击:
一个通信系统中,编码出来的数据是2048位【2047:0】,而进行调制的时候是一位一位往里进的,每隔8个时钟进一位,我该如何写,用普通的串并转换,因为用到一个2048位寄存器,报错说IO单元过多,该怎么解决呢 ?还有 XILINX14.2中能把调制后的数据导出吗?

把2048位数据拆分成若干个8位或16位或32位寄存器,循环移位使用即可

如LS所说的方法,定义个二维数组reg [127:0] data[15:0],或者直接16个reg [127:0] data0, data1, ....
写个状态机,先读data0,把128bit一点点送进去,然后data1等,这样的好处是相对直观,reg里面数值一直都不变,等着状态机去取值,应该相对节能点。
还有方法就是大家更熟悉的循环法,数据不断地移位,所有的reg在进行调制时都会重新赋值,也许能耗会更高点,当然,FPGA嘛,也不太在乎这点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top