作者zx33571163 (mm)
看板Electronics
标题[问题] VERILOG SHIFT REG
时间Sat Aug 14 20:39:51 2010
always@(posedge clk or posedge reset )
begin
if(!reset)
begin
buf1out1<=0;
buf1out2<=0;
buf1out3<=0;
end
else
begin
buffer[0]<=buf1in2;
buffer[1]<=buf1in1;
__________________________________________________________
buffer[2]<=buffer[0];
buffer[3]<=buffer[1];
buffer[4]<=buffer[2];
. .
. .
. .
buffer[178]<=buffer[176];
buffer[179]<=buffer[177];
buffer[180]<=buffer[178];
______________________________________________________
buf1out1<=buffer[179];
end
end
中间那段怎麽写比较快
总共要写180几行要怎麽写比较快?
有用过genvar for回圈可是compile没过= =
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.164.238
※ 编辑: zx33571163 来自: 59.117.164.238 (08/14 20:40)
1F:推 Acme:为啥只有一个buf1out1? 2,3呢? 这样看不出规则 08/14 21:16
※ 编辑: zx33571163 来自: 59.117.164.238 (08/14 21:27)
2F:推 Acme:如果这样,那直接把他改成89 or 90bit就好;到180是障眼法 08/14 21:32
3F:→ Acme:不对,还是要到179,out2,3是障眼法... 08/14 21:36
4F:→ Acme:buffer[180:0]<={buffer[178:2],buffer1,buffer2}; 08/14 21:41
5F:推 Acme:buffer[180:0]<={buffer[178:0],buffer1,buffer2}; 才对^_^ 08/14 21:44
6F:→ zx33571163:我是要把资料存到BUFFER里,BUFFER总共20000多BIT,用 08/14 21:57
7F:→ zx33571163:180只事先简化,等存满後再输出 08/14 21:58
8F:→ zx33571163:1次存2个8BIT,存满後,1次读3个8BIT 08/14 21:58
9F:→ zx33571163:目前只想到这个办法,还是大大有更好的方法 08/14 21:59
10F:→ Acme:output不能间断吗? 还是3B到下个3B可以停? 08/14 22:08
11F:→ Acme:不能间断的话,lb要够大...但应该也不需要到20000多bit 08/14 22:10
12F:→ zx33571163:等BUFFER存满才开始读,BUGGER就是20000多BIT 08/14 22:15
13F:→ Acme:为啥要存满才开始读?而且要20000b? 是design还是test bench? 08/14 22:20
14F:→ zx33571163:DESIGN要求就是这样= = 08/14 22:31
15F:推 Acme:那就wadr<=wadr+2; 等write完 radr<=radr+3; 08/14 22:37
16F:→ zx33571163:可以讲详细一点吗 谢谢^^ 08/14 22:40
17F:推 sasako:你题目说得不清不楚 无法知道你想要干嘛..你只问了怎麽 08/16 01:14
18F:→ sasako:简化那180行 而板友提供一个不错的解法.. 08/16 01:14
19F:→ sasako:资料的长度?buffer是一维二维?存满的定义是什麽? 08/16 01:15
20F:推 vapaa:中间那段可以用C写 再输出到文字档 复制贴上 快又不容易错 08/16 10:15
21F:→ vapaa:reset里面应该也要包含shift reg的reset 这样写比较正确 08/16 10:21
22F:→ vapaa:还有你reset trigger的方式可能打错了 应该是negedge的^^ 08/16 10:25