打印

来试试:看真值表,用verilog或vhdl描述

[复制链接]
4109|4
手机看帖
扫描二维码
随时随地手机跟帖
沙发
yimaoqian| | 2007-12-2 19:44 | 只看该作者

不好意思temp2 改成temp

使用特权

评论回复
板凳
liwensir|  楼主 | 2007-12-6 14:40 | 只看该作者

好像有点问题哦

    楼上大哥,谢了阿,但你的做法还有问题,你只在脉冲的上升沿更新寄存器的值好像还不行吧,你看看下面这个图,t3时刻temp的值应该是“1”,但按你的程序是“0“,

使用特权

评论回复
地板
liwensir|  楼主 | 2007-12-11 09:34 | 只看该作者

难道没人会写吗?

  自己顶一下先!

使用特权

评论回复
5
liwensir|  楼主 | 2007-12-19 15:16 | 只看该作者

参考答案之一

module easy(f8,f7,f6,f5,f4,f3,f2,f1,O6,O7,O8,pl,cp,ds);           
input f8,f7,f6,f5,f4,f3,f2,f1;
input pl,cp,ds;
output O6,O7,O8; 
reg [7:0] fifo;
reg [7:0] buff;
reg       state1;
///////////////////////
assign   O6= pl? f6: ( state1?buff[5]:(fifo[5]) );
assign   O7= pl? f7: ( state1?buff[6]:(fifo[6]) );
assign   O8= pl? f8: ( state1?buff[7]:(fifo[7]) ); 
/////////////////////////
always@(posedge pl or posedge cp)
if(pl)
    state1<=1;
else
    state1<=0;
//////////////////////////
always @(negedge pl)
buff<={f8,f7,f6,f5,f4,f3,f2,f1};
/////////////////////////
always@(posedge cp)
if(state1)
     fifo<={buff[6:0],ds};
else     
     fifo<={fifo[6:0],ds}; 
////////////////////////
 
endmodule

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝