微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请问这段代码风格是不是很差,语法是不是正确

请问这段代码风格是不是很差,语法是不是正确

时间:10-02 整理:3721RD 点击:

always @ (*)
case ({hready_s0,hready_s1,hready_s2,hready_s3})
    4'b1000:   
           ready_d = hready_s0;
    4'b0100:   
           ready_d = hready_s1;
    4'b0010:   
           ready_d = hready_s2;
    4'b0001:   
           ready_d = hready_s3;
   default:
           ready_d = 0;
endcase

真有点蒙着了

latch。
就算搞成full_case,这逻辑无意义,因为ready_d始终为高电平



   哦,原来没写完
always @ (*)
case ({hready_s0,hready_s1,hready_s2,hready_s3})
    4'b1000:   
           ready_d = hready_s0;
    4'b0100:   
           ready_d = hready_s1;
    4'b0010:   
           ready_d = hready_s2;
    4'b0001:   
           ready_d = hready_s3;
    default:
         ready_d = 0;
endcase

这样就对了,而且很有用

hready_s0,hready_s1,hready_s2,hready_s3这四个输入中,仅当只有一个输入为高电平时,输出ready_d 为高电平
否则输出ready_d 为低电平

向研究代码风格嘛 去asics或者opencore什么的下载个程序研究研究 一般老外写的要么很严谨 要么很潇洒



   是的,呵呵,标准的mux



   看了,记不住,呵呵,慢慢来



   那是因为我漏了default,现在好多了吧

感觉你的问题不是很清楚。如果真按大家的猜想你的逻辑实现起来就一行代码
assign ready_d = ({hready_s0,hready_s1,hready_s2,hready_s3} != 'h0)? 1:0;
如果你相表达Onehot 状态机,可不是这么玩的。


您好,请问你说的opencore asics网址是什么啊



   我就是要这个效果,呵呵,多谢啦。 太强了呀

一般会把三个信号或一下。
assign ready_d =  hready_s0 | hready_s1 | hready_s2 | hready_s3;



   一个开源各种以wishbone总线为基本总线构架IP的网站 www.opencore.org。那帮人写的也不是很好。要是有条件的话,建议研究motorola的IP,他的coding style很不错。国内的华为也比较stric。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top