打印

请赐教:hef4021b的verilog语言描述

[复制链接]
2018|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liwensir|  楼主 | 2007-11-30 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在下初学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块的触发方式只能用电平触发和沿触发中的一种,我的思路要用到两种触发方式,于是怎么也解决不了。
请问各路高手:我这种思路行得通吗?若行得通,望指点!
若行不通,还望提示其他思路,不胜感激!!

相关帖子

沙发
liwensir|  楼主 | 2007-12-6 14:44 | 只看该作者

仿真起来不对阿

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

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝