在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8220|回复: 3

[求助] 关于verilog中拼接符的使用疑问,求大神指点

[复制链接]
发表于 2013-3-22 22:16:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
verilog编程可以利用拼接符进行移位操作吗?eg:  assign fcheck={rcheck,fin};//其中fcheck和rcheck都是4位的,fin是一位的,仿真结果是{rcheck,fin}的最高位去掉了赋给 fcheck了,但有一个问题就是 fcheck的变化时受fin异步控制的,没有一个时钟读一次fin的值,是不是可以将这句改成用时钟沿控制以为赋值而不用asign,另外这样使用拼接符是可以综合的吗?  要是不可以综合的话是不是可以用ram将fin串口的数据读进去比较可靠?可是具体的通过ram将数据串行写到12位的缓冲寄存器temp的具体程序怎么写呀??小女子菜鸟一只,望大神赐教,不甚感激!!!
发表于 2013-3-23 10:59:14 | 显示全部楼层
如果你确实是想你这样做可以的, 语法也没有问题, 也是可以综合的。 但是有风险的是组合逻辑容易引起毛刺, 推荐用时钟沿控制位赋值。 至于将RAM 的数据穿行写到12位缓冲寄存器中, 你可以用SPI将数据读出来, 或者就是用计数器产生地址,将每一个地址的数据读读出来看看更方便也更直观, 推荐用读地址数据的方法来
发表于 2013-3-23 23:20:34 | 显示全部楼层
reg    fcheck_tmp;
reg    fcheck;

always @ ( fin )   fcheck_tmp = rcheck;
always @ ( posedge clk )  fcheck <= fcheck_tmp;
发表于 2013-3-28 00:02:49 | 显示全部楼层
我猜你有个串行的数据源输入(信号叫fin),你想每进来4个bit就作为1组(你叫做fcheck)存入sram,是这样么?然后这个sram存入一定量以后可以进行访问或者其他校验操作
(随手写的,没仔细看有没问题)
e.g:
module check(clk,resetn,din);
input clk;
input resetn;
input din;
reg [3:0] fcheck;
always(posedege clk or negedge resetn);
begin
    if(!resetn)  fcheck <= 4'h0;
    else           fcheck <={fcheck[2:0],din};//left-shift
end
endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-5 14:41 , Processed in 0.025351 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表