打印

关于这段代码,请大家指点一下,实在搞不清楚。

[复制链接]
1274|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 cyberbill 于 2018-9-11 15:07 编辑

这是一个SPI MASTER的实现,来自altera的DEMO请看图片蓝色区域,为什么是处理的频率激发,而不是WR和RD?

好几个激发也是来自处理器的频率,问题是cpu如果频率很高,岂不是有问题
而且我实际在epm240测试过,如果写入WR的信号持续几十个毫秒,出来的波形不正确,WR是要很短的时间才行
是不是哪里错了?



完整代码请看这里
SPI_Master.rar (1.43 KB)


相关帖子

沙发
kdurant| | 2018-9-11 13:55 | 只看该作者
基本语法理解不过关!
pro_clk的上升沿来,就去执行一次下面的语句。
wr,rd之类的使能信号,一般一个周期就够了

使用特权

评论回复
板凳
cyberbill|  楼主 | 2018-9-11 15:05 | 只看该作者
kdurant 发表于 2018-9-11 13:55
基本语法理解不过关!
pro_clk的上升沿来,就去执行一次下面的语句。
wr,rd之类的使能信号,一般一个周期就 ...

为什么不写成

always @ (posedge WR or posedge RD) begin
    if (CS) begin
        case (addr)
        2'b00 : if (WR) control <= data_in;
        2'b01 : if (RD) data_out <= status;   // Void
        2'b10 : if (WR) txdata <= data_in;
        2'b11 : if (RD) data_out <= rxdata;
        endcase
    end
end

使用特权

评论回复
地板
cll| | 2018-9-11 20:15 | 只看该作者
cyberbill 发表于 2018-9-11 15:05
为什么不写成

always @ (posedge WR or posedge RD) begin

不要使用多时钟  wr  rd  可以做为时钟使能  

使用特权

评论回复
5
cll| | 2018-9-11 20:17 | 只看该作者
如果写入WR的信号持续几十个毫秒 。。。。 可以使用微分电路处理wr  使它只有一个时钟宽度

使用特权

评论回复
6
kdurant| | 2018-9-13 12:49 | 只看该作者
cyberbill 发表于 2018-9-11 15:05
为什么不写成

always @ (posedge WR or posedge RD) begin

对于简单的应用,这样写结果也可能是对的。

复杂设计时,多时钟会让你的时序乱糟糟的

使用特权

评论回复
7
bioger2| | 2018-9-13 12:54 | 只看该作者
我觉得你去理解下什么的同步逻辑和异步逻辑吧,看看他们之间的比较,应该就明白了

使用特权

评论回复
8
mack12345| | 2020-8-7 17:42 | 只看该作者
兄弟多学学基本概念

使用特权

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

本版积分规则

39

主题

75

帖子

1

粉丝