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