完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,我是FPGA的新手。
尝试自己编写SPI主模块以便有效地学习。 这是spi_master模块: 模块spi_master( 输出[15:0] tx_data, 输入[15:0] rx_data, 输出mosi, 输入味噌, 输出cs, 输出sck, 输入开始 ); reg [15:0] tx_data; reg [3:0] tx_counter; reg [3:0] rx_counter; 电线启动; reg cs; reg mosi; 铁线噌; 电线; 最初开始 tx_counter [3:0] = 4'b0; rx_counter [3:0] = 4'b0; 结束 总是@(negedge sck)开始 if(cs == 0&& tx_counter!= 4'b1111)开始 #(5)mosi = 4'b0001)开始 #1 rx_data [rx_counter] 这是测试模块; `include“spi_master.v” 模块spi_master_tb( ); reg clk; 注册开始; reg mosi; 铁线噌; reg cs; reg sck; reg [15:0] tx_data; 最初开始 clk = 0; tx_data = 16'hF0AA; #20 start = 1'b1; #1000 $完成; sck = 0; 结束 总是开始 #1 clk = ~clk; 结束 总是@(开始)开始 #10 sck = ~sck; //由CLK_DIVIDER划分clk 结束 spi_master SPI_block( TX_DATA, RX_DATA, MOSI, 味噌, CS, SCK, 开始 ); endmodule spi_master模块可以编译没有错误,但是当我尝试testbench时,我收到此错误: 错误:HDLC编译器:1660 - “C:/ Users / aozel / Desktop / FPGA Projects / myModule /../ Test2 / spi_master.v”第74行:不允许对非寄存器rx_data进行程序分配,左侧应该 是reg /整数/时间/ genvar 为什么是这样? 当我添加时 reg [15:0] rx_data; 这次到spi_master模块我得到这个: 错误:HDLC编译器:661 - “C:/ Users / aozel / Desktop / FPGA Projects / myModule /../ Test2 / spi_master.v”第24行:非网络端口rx_data不能是模式输入 为什么会这样? 我感谢任何帮助。 谢谢。 |
|
相关推荐
1个回答
|
|
|
看起来你已经为SPI模块的rx_data和tx_data并行端口反转了方向。
一般而言,并行rx_data应该是SPI接口模块的输出,即来自接口的串行线的接收数据在模块中并行化,然后输出到FPGA的其余部分。 发送的数据由FPGA的其余部分并行馈送到模块,然后串行化为SPI接口串行线。 所以tx_data应该是模块spi_master的输入,而rx_data应该是模块spi_master的输出。 这也会匹配测试逻辑的隐含方向,它驱动tx_data并且只希望在rx_data上看到一些东西。 - Gabor |
|
|
|
|
只有小组成员才能发言,加入小组>>
3118 浏览 7 评论
3407 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2873 浏览 9 评论
3966 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
3057 浏览 15 评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
1325浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
1167浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:45 , Processed in 1.083565 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6940
