原创 [博客大赛] 初试双端口RAM与乘法器

2012-4-12 22:10 1643 11 11 分类: FPGA/CPLD

运用Quartus II软件的MegaWizard配置的双端口RAM如下:

snap1.jpg

 

由于双端口RAM的数据输入和输出都用寄存器打了一拍,因此数据写入RAM中需要两个时钟周期,而数据读出需要三个是中周期。以下是仿真波形图:

snap2.jpg

在第1个时钟周期写入输入数据的地址和数据(地址为4,数据为1721),那么在第2个时钟周期数据1721才真正写入RAM中地址为4的单元中,那么在下一个时钟周期才可以读取地址4中的数据1721。在第3个发送读取地址信号,数据需要在第5个时钟周期才能输出地址4中的数据。

因此可以总结出:RAM的数据写入和读取只需要一个时钟周期,在实际应用的时候通常会用输入输出寄存器打一拍,相应的数据输入输出会滞后一个时钟周期。

在Quartus II中配置乘法器如下所示:

snap1.jpg

这里选择的是ADD,实际上点击Next就会出现下面对话框:

snap2.jpg

从上图可以看到,这里的加法器实际上先进行乘法运算,将乘法运算的结果相加。同时,可以选择乘法器的数量,最多可以选择4个。这里只分析乘法器,因此乘法器数量选择1。最后配置的乘法器如下图所示:

snap3.jpg

下面是仿真的波形图:

snap4.jpg

从上图可以看到,在第1个时钟沿输入待相乘的两个数据,在第2个时钟沿乘法器进行乘法运算,在第3个时钟周期可以读取计算结果。注意,乘法器的aclr0信号在为“0”时计算才有效。

 

 

 

 

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条