在下初学cpld,这几天要描述个4021的功能,用verilog语言,碰到问题如下:<br /> 4021内8个寄存器的值从左到右为f1--f8,三个输出O6,O7,O8分别等于f6,f7,f8;<br />在pl为高电平时,并行输入(p1--p8)有效,f1--f8分别等于8个并行输入的值(p1--p8);<br />在pl为低电平时,串行输入(Ds)有效,在每个触发脉冲(CP)的上升沿,f1--f8向右移动一位,移位后<br />f1`=Ds,<br />f2`=f1,<br />f3`=f2,<br />f4`=f3,<br />f5`=f4,<br />f6`=f5,<br />f7`=f6,<br />f8`=f7,<br /><br />我目前想用always块来保持8个寄存器的值的正确,输出O6,O7,O8就直接等于f6,f7,f8了。但是,always块的触发方式只能用电平触发和沿触发中的一种,我的思路要用到两种触发方式,于是怎么也解决不了。<br />请问各路高手:我这种思路行得通吗?若行得通,望指点!<br />若行不通,还望提示其他思路,不胜感激!! |