完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tify;text-indent: 40px;">你好
我在Digilent公司使用BASYS2 和研究环境光传感器Pmod。 我想下面的代码信息 clk:50Mhz sclk:1Mhz cs:sclk x 16计数 数据8bit(dout是1位数据) LED:通过环境光传感器输出和检查信息 我的源代码如下。 但它不适用于BASYS2板。 我不知道什么是错误。 所以请一些信息或建议 LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; ENTITY SPI3 ISPORT(clk:IN std_logic; clr:IN std_logic; dout:IN std_logic; led:OUT std_logic_vector(7 DOWNTO 0); sclk:OUT std_logic; cs:OUT std_logic); END SPI3; SPI3的架构SPI3_be TYPE state_type IS(idle,adc_r,adc_w); SIGNAL状态:state_type:= idle; SIGNAL cnt_sclk:INTEGER RANGE 0到49; SIGNAL newsclk:std_logic:='0'; SIGNAL cnt_cs:INTEGER RANGE 0到1599; SIGNAL newcs:std_logic:='1'; SIGNAL数据:std_logic_vector(7 DOWNTO 0); SIGNAL cnt_data :INTEGER范围1到16; BEGINsclk csIF newcs ='1'THENstate ELSIF newcs ='0'THENstate END IF; WHEN adc_r => IF cnt_data> 0 AND cnt_data cnt_data state ELSIF cnt_data> 3 AND cnt_data cnt_data data(11 - cnt_data) state ELSIF cnt_data> 11 AND cnt_data cnt_data state ELSIF cnt_data = 16 THENstate END IF; WHEN adc_w => led cnt_data state 以下为原文 Hello I'm using BASYS2 at Digilent Co. and Studying Ambient Light Sensor Pmod. I think below information of code clk : 50Mhz sclk : 1Mhz cs : sclk x 16 count data 8bit ( dout is 1bit data) LED : output and check of information by Ambient Light Sensor My source code is below. but it's not working on BASYS2 board. I don't know what is error . So Please some imformation or advice LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; ENTITY SPI3 IS PORT( clk : IN std_logic; clr : IN std_logic; dout : IN std_logic; led : OUT std_logic_vector( 7 DOWNTO 0 ); sclk : OUT std_logic; cs : OUT std_logic ); END SPI3; ARCHITECTURE SPI3_be OF SPI3 IS TYPE state_type IS( idle, adc_r, adc_w ); SIGNAL state : state_type := idle; SIGNAL cnt_sclk : INTEGER RANGE 0 TO 49; SIGNAL newsclk : std_logic := '0'; SIGNAL cnt_cs : INTEGER RANGE 0 TO 1599; SIGNAL newcs : std_logic := '1'; SIGNAL data : std_logic_vector( 7 DOWNTO 0 ); SIGNAL cnt_data : INTEGER RANGE 1 TO 16; BEGIN sclk <= newsclk; cs <= newcs; clkdiv : PROCESS( clr, clk ) BEGIN IF clr = '0' THEN cnt_sclk <= 0; cnt_cs <= 0; newsclk <= '0'; newcs <= '1'; ELSIF clk'EVENT AND clk = '1' THEN IF cnt_sclk = 49 THEN newsclk <= NOT newsclk; cnt_sclk <= 0; ELSE cnt_sclk <= cnt_sclk + 1; END IF; IF cnt_cs = 1599 THEN newcs <= NOT newcs; cnt_cs <= 0; ELSE cnt_cs <= cnt_cs + 1; END IF; END IF; END PROCESS clkdiv; FSM : PROCESS( clk, clr, state ) BEGIN IF clr ='0' THEN cnt_data <= 1; data <= "11111111"; ELSIF clk'EVENT AND clk = '1' THEN CASE state IS WHEN idle => IF newcs = '1' THEN state <= idle; ELSIF newcs ='0' THEN state <= adc_r; END IF; WHEN adc_r => IF cnt_data >0 AND cnt_data <4 THEN cnt_data <= cnt_data + 1; state <= adc_r; ELSIF cnt_data > 3 AND cnt_data <12 THEN cnt_data <= cnt_data + 1; data( 11 - cnt_data ) <= dout; state <= adc_r; ELSIF cnt_data > 11 AND cnt_data <16 THEN cnt_data <= cnt_data + 1; state <= adc_r; ELSIF cnt_data = 16 THEN state <= adc_w; END IF; WHEN adc_w => led <= data; cnt_data <= 1; state <= idle; END CASE; END IF; END PROCESS FSM; END SPI3_BE; |
|
相关推荐
4个回答
|
|
男,
为您的代码创建一个测试平台。 模拟它。 观察模拟。 修复任何错误。 重复,直到你有你想要的。 Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 m, Create a test bench for your code. Simulate it. Observe the simulation. Fix any bugs. Repeat until you have what you want. Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
谢谢你的回复
我还创建并测试了测试台代码。 并且它收集到在模拟器中操作clk,clr,sclk,cs。 'dout'类型是输入std-logic,我也输入脉冲信号std-logic类型。 输入数据(7:0)中的1位信号和输出LED(7:0)信号。 但它没有在TT上工作 以上来自于谷歌翻译 以下为原文 Thank you for replying it I also created and did test bench code. and it's collect to operate clk, clr, sclk, cs in simulator. 'dout' type is input std-logic and i also input pulse signal std-logic type. Input 1 bit signal in data(7:0) and output LED(7:0) signal . But it;s not working on board TT |
|
|
|
- 但它没有在TT上工作
您使用的链接是否在以下链接http://www.xilinx.com/products/boards-and-kits/1-27b7gd.html中指定? 在这种情况下,以下手册https://www.digilentinc.com/Data/Products/BASYS2/Basys2_rm.pdf是有用的参考。 _______________________________________________如果有助于解决您的查询,请将此帖子标记为“接受为解决方案”。 因此,它将有助于其他论坛用户直接参考答案。如果您认为该信息有用且面向答复,请给予此帖子称赞。 以上来自于谷歌翻译 以下为原文 --But it;s not working on board TT Are you using same board specified in the following link http://www.xilinx.com/products/boards-and-kits/1-27b7gd.html? In that case the following manual https://www.digilentinc.com/Data/Products/BASYS2/Basys2_rm.pdf is useful reference. ________________________________________________ Please mark this post as an "Accept as solution" in case if it helped to resolve your query. So that it will help to other forum users to directly refer to the answer. Give kudos to this post in case if you think the information is useful and reply oriented. |
|
|
|
magictaro写道:
谢谢你的回复 我还创建并测试了测试台代码。 如果测试台没有传感器型号,那么它不是测试台。 ----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 magictaro wrote:If the test bench does not have a model of the sensor, then it's not a test bench. ----------------------------Yes, I do this for a living. |
|
|
|
只有小组成员才能发言,加入小组>>
2177 浏览 7 评论
2615 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2084 浏览 9 评论
3156 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2207 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
444浏览 1评论
1539浏览 1评论
在使用xc5vsx95T时JTAG扫片不成功,测量TDO无信号输出
2183浏览 0评论
513浏览 0评论
1656浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-8 21:05 , Processed in 1.109055 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号