搜索
bottom↓
回复: 8

verilog 多端口切换?下面这样可以吧?

[复制链接]

出0入0汤圆

发表于 2014-10-20 16:15:01 | 显示全部楼层 |阅读模式


assign  b =  signal1  ? a1 :8'hzzzz;
assign  b =  signal2  ? a2 :8'hzzzz;
...
assign  b =  signaln  ? an :8'hzzzz;

其中 a1 ...  an 同一时刻 只有一个为 1
这样 实现总线切换 可以吧 ?
或有什么其他的好办法,求教

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-10-20 16:27:04 | 显示全部楼层
为什么 不用 case 语句。。

出0入22汤圆

发表于 2014-10-20 17:15:22 | 显示全部楼层
case 才是解决的办法。

出0入0汤圆

 楼主| 发表于 2014-10-20 17:36:13 | 显示全部楼层
本帖最后由 atom100 于 2014-10-20 17:45 编辑

哦,  组合逻辑中用case语句 ?

但 case语句后不是一个 变量 啊?

出0入0汤圆

 楼主| 发表于 2014-10-20 17:45:08 | 显示全部楼层
没说清楚,

assign  b =  sa1  ? a1 :8'hzzzz;
assign  b =  sa2  ? a2 :8'hzzzz;

assign  b =  sb1  ? a1 :8'hzzzz;
assign  b =  sb2  ? a2 :8'hzzzz;
... ...

assign  b =  sc1  ? a1 :8'hzzzz;
assign  b =  sc2  ? a2 :8'hzzzz;

其中 saa1  saa2 ...  san1 san2 同一时刻 只有一个为 1

sa1 sa2, sb1 sb2 , sc1 sc2来自不同的状态机
前面字母相同的 sa , sb  或  sc 来自同一个状态机,
如果用case 语句的话,case后面不是一个变量啊 ?

出0入0汤圆

发表于 2014-10-20 17:47:35 | 显示全部楼层
zxq6 发表于 2014-10-20 17:15
case 才是解决的办法。

总觉得必须互斥才行。

软件不知道这些是互斥的。

出0入0汤圆

 楼主| 发表于 2014-10-20 17:59:34 | 显示全部楼层
本帖最后由 atom100 于 2014-10-20 19:28 编辑

把 sa1 ,sa2, sb1 ,sb2 ,sc1 ,sc2 整合到一个变量里了reg [3:0]bus_num,
reg [7:0]b;
always @(*)
   case:
        4'h1:
          begin
              b =  sa1 ;
              b =  sa2 ;
          end

        4'h2:
          begin
              b =  sb1 ;
              b =  sb2 ;

          end

        4'h3:
           begin
              b =  sc1 ;
              b =  sc2 ;

          end   
   endcase
其中b 连接到 sram的数据总线上
这样写对吧 ?
另外,不同的信号 切换到 同一个总线b上的时候,是否会有波动 ?是否需要用一个 信号 进行 “与”一下,就是切换过程的时候,置为0;切换完后才置为1

出0入0汤圆

发表于 2014-10-28 11:10:34 | 显示全部楼层
atom100 发表于 2014-10-20 17:59
把 sa1 ,sa2, sb1 ,sb2 ,sc1 ,sc2 整合到一个变量里了reg [3:0]bus_num,
reg [7:0]b;
always @(*)

1.要把case 情况全部列出来;2. 切换过程中的数据肯定是不能用的,你要保证控制切换的信号和读取输出的信号是同步的就OK。

出0入0汤圆

发表于 2014-10-28 14:56:00 来自手机 | 显示全部楼层
case情况不列全就会生成latch   浪费逻辑资源
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表