请赐教:hef4021b的verilog语言描述

[复制链接]
2947|1
 楼主| liwensir 发表于 2007-11-30 10:07 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;在下初学cpld,这几天要描述个4021的功能,用verilog语言,碰到问题如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;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 />若行不通,还望提示其他思路,不胜感激!!
 楼主| liwensir 发表于 2007-12-6 14:44 | 显示全部楼层

仿真起来不对阿

楼上大哥,谢了阿,但你的做法还有问题,你只在脉冲的上升沿更新寄存器的值好像还不行吧,你看看下面这个图,t3时刻temp的值应该是“1”,但按你的程序是“0“,<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部