AHB slave设计问题
时间:10-02
整理:3721RD
点击:
本人还是个新手,刚接触AMBA 2.0。最近为一个功能模块进行IP的总线接口封装(AHB-slave),过程中有些问题想请大家帮忙提提看法。1、slave-interface:当传输类型为burst模式,slave先判断第一拍是否为nonseq,如果不是就将hresp赋值error、hready赋值1;如果是nonseq,则再判断第二拍是否为seq。如果第二拍为seq,则开始对数据进行读操作或者写操作,如果不是就将hresp赋值okay、hready赋值0。因为没有完整的master模块,所以还没有做全面验证,也就想问大家,这样考虑设计对吗,会造成data phase再延迟一拍吗?(没有用case语句,而是采用if-else)
2、如果采用FSM设计,read_single、read_burst、write_single、write_burst的状态要怎么转换,read_single能直接转换到write_burst吗,如果不能,要怎么处理这个转换?做转换时,一直疑惑read_burst可以转到read_single,也可以转到write_single或者write_burst。讲到底,其实不明白每个状态的开始条件和结束条件,特别是结束条件。我的设计是采用hsel、hreadyi、htrans、hburst一起来判断开始条件的。
还请大家帮忙支招!
2、如果采用FSM设计,read_single、read_burst、write_single、write_burst的状态要怎么转换,read_single能直接转换到write_burst吗,如果不能,要怎么处理这个转换?做转换时,一直疑惑read_burst可以转到read_single,也可以转到write_single或者write_burst。讲到底,其实不明白每个状态的开始条件和结束条件,特别是结束条件。我的设计是采用hsel、hreadyi、htrans、hburst一起来判断开始条件的。
还请大家帮忙支招!
不要沉下去呀!
如果要再加入对hsize的判断,整个设计的流程要如何处理!
