微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog HDL同址运算 如何实现?

verilog HDL同址运算 如何实现?

时间:10-02 整理:3721RD 点击:

看了篇论文,关于一个硬件实现的,其中用到 同址运算 ,因为接触verilog没多久,想了半天不知道这个是怎么实现的?我的疑问:1、同址就是相对memory、rom、ram等而言的,那这些东西能做为模块的输出吗?(好像不能吧?)2、举个例子, 假设3个memory,即reg [7:0] mem_a [0:255] ,mem_b [0:255] ,mem_c [0:255]; 对于mem_a 和 mem_b 按对应地址做运算(加减乘除,   异或…… 均可),如何把得到的结果再存到mem_a中,,然后mem_a再和mem_c运算,在放到mem_a中?
说的有点凌乱,总之,就是如何用verilog实现同址运算?

伪码:
@(p clk)
a <= b + c;
@(p clk)
a <= a + c;

兄弟,
1,ram,最好单独作为一个module,
2,现在的ram都是同步ram,结构是 :收入地址数据是按照时钟上升沿锁存的,输出数据是ram的latch,不妨找些资料看看。现在是没有 reg [7:0] mem_a [0:255] ;的ram了。所以同步ram的地址线在ram内部,无法被外部使用。



   并且,你的模块没有划分好,地址线外部输出。必须吗?换种解决方案


恩,可用用两个ram构成乒乓式结构


恩,差不多多就是这个意思,我现在的想法是用两个ram构成乒乓式结构,貌似也能完成这样的功能。

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

网站地图

Top