完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好。
我的Spartan-3AN入门套件的文档描述了 板载LCD的初始化和显示配置过程 屏幕。 然而,所描述的初始化过程允许人们使用 4位数据接口,但如何启用可选项 8位接口还是默认设置? 如果使用8位 接口是否必须通过初始化过程进行 类似于使用4位接口所描述的? 什么是 如果我想使用8位,那么初始化过程会有所不同 接口? 如果使用8位接口,是否还必须完成显示配置过程? 我怀疑我知道我的问题的答案但是 无论如何,我想要确认,因为时钟问题阻碍了我 从调查自己。 在此先感谢您的帮助 我还在另一个论坛上有另一个问题,如果有人想看看,我仍然希望得到答案: http://www.fpga4fun.com/forum/viewtopic.php?p=7094#7094 |
|
相关推荐
15个回答
|
|
你好。
我的Spartan-3AN入门套件的文档描述了 板载LCD的初始化和显示配置过程 屏幕。 然而,所描述的初始化过程允许人们使用 4位数据接口,但如何启用可选项 8位接口还是默认设置? 如果使用8位 接口是否必须通过初始化过程进行 类似于使用4位接口所描述的? 什么是 如果我想使用8位,那么初始化过程会有所不同 接口? 如果使用8位接口,是否还必须完成显示配置过程? 我怀疑我知道我的问题的答案但是 无论如何,我想要确认,因为时钟问题阻碍了我 从调查自己。 在此先感谢您的帮助 我还在另一个论坛上有另一个问题,如果有人想看看,我仍然希望得到答案: http://www.fpga4fun.com/forum/viewtopic.php?p=7094#7094 |
|
|
|
只是为了笑容,我尝试了搜索功能。
我试过“液晶界面”。 它出现了一些有趣的线索。 这个线程是否引用相同的LCD? 如果是这样,链接的维基百科文章是否有助于回答您的问题? - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
好吧,我在另一个链接到的论坛上再次发布了这个问题。
我现在有一个工作的4位接口到LCD,我可以写一个所需的字符到屏幕 - 有时。 我正在尝试将字符串“501”写入屏幕,但我最终要么将下划线'_'或U上面的2个点'u'写入屏幕。 查看字符映射,这些字符共享一个带有字符'5'的nybble,这是我尝试写入屏幕的第一个字符,另一个nybble是'1111',这是数据行(3到0)应该是什么 使用4位接口时保持不变。 这似乎暗示我的时间关闭,并且没有以正确的顺序传输nybbles,即只有一个字符'5'的nybbles被正确地发送到LCD 我的应用程序的设计方式我使用2位计数器作为伪FSA中的伪状态。 我运行的模拟显示正确的数据以正确的方式传输到LCD,在LCD上显示“501”,但正如我所说,这在现实生活中不会发生。 现在,如果我使用2个板LED来读取2位计数器,则液晶显示屏上会显示字符串“ü__”,但如果我不使用2个LED来读取计数器,屏幕上会出现字符串“üüü” 。 决定因素似乎是2个LED是否用于显示计数器。 我的问题是为什么LED有所作为? 我不会在任何形式的决策中使用它们,它们纯粹是输出。 使用LED会影响PAR程序,从而改变我的应用程序的行为吗? |
|
|
|
1.这是本主题的正确论坛。
2.您描述的问题听起来像是诚实至善的状态机编码问题。 3.结果是否一致或不一致? 换句话说,如果你试着写一个'5'字符,你是否总是得到相同的错误字符,你总是得到一个错误的字符(但不总是相同的字符),你是否得到正确的字符? 如果您发现结果不一致,则典型原因包括(但不限于): A.对状态机的非同步异步输入(例如按下按钮) B.未初始化(或初始化不正确)状态/计数器 C.编码错误,状态或计数器未正确控制 D.不完整的状态机编码(例如,状态机代码没有干净地“完成”循环,没有正确解释意外情况) 对于调试,从简单开始,然后向外工作。 例如:写一个固定字符。 你总能获得一致的结果吗? 你总能得到正确的结果吗? 一旦您满意地运行,那么扩大测试范围。 一次改变一件事(并且只改变一件事),这样当行为改变时,你肯定知道潜在原因所在的位置。 附: 我相信当处于4位模式时,信号引脚D3:0上的电平真正“无所谓”。 P.P.S. 我没有使用这样的开发板,所以我不能声称自己是这个主题的权威。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
好吧,我已经减少了我的应用程序只输出“5”而不是“501”,取消了我用来跟踪我输出的字符的计数器,我没有使用LED。
我使用ModelSim双重检查我的状态机并眯着眼睛看代码,一切都很好但现在我没有在LCD屏幕上得到任何字符(这是一致的结果)。 然后我还包括一个额外的状态,允许我的应用程序将0.5us的正确数据放到LCD数据线上,然后断言LCD启用线,以防万一这是一个问题但无济于事。 正如我所说,我的模拟显示我与LCD屏幕的通信是我想要的,这就是为什么我认为这是一个真实世界的时间问题。 |
|
|
|
1.是否有任何显示的字符代码(您已经确认“5”不显示)。
这可能会给你一个线索。 听起来你已经把时间安排作为一个问题。 这留下了协议和格式。 或者可能只是没有启用LCD显示屏。 你检查过液晶电源,对吗? 4.您可以运行原始的基于PicoBlaze的驱动LCD的代码,证明LCD和FPGA接口工作正常吗? 5.如果PicoBlaze代码有效,并且您的代码不起作用,您可以将代码划分为更精细的位以进行隔离/调试吗? 例如:将PicoBlaze初始化代码与您的字符编写代码一起使用,反之亦然。 听起来你正在取得进展 - 将问题缩小到越来越小的代码集。 您是否有可用于检查信号的示波器? 我倾向于比较PicoBlaze字符写入和岗位代码字符写入之间以及PB-init和sentry-init之间的信号波形。 这需要'范围。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
我创建了一个单独的模块,它接受一个32位无符号数字和一个数字位置(32位数字中0到9:10可能的数字)并返回所需数字的ASCII字符;
ASCII字符是我传递给LCD的。 该模块是异步的,但使用“使能”信号,并在其输出有效时置位“完整”信号。 该模块是基于同步状态机的更大设计中的组件,该状态机根据请求写入LCD。 当我使用这些模块写入LCD时,事情不起作用,但是当我将值硬编码到LCD上时(即我不使用之前描述的模块),LCD工作正常。 显而易见的问题是“我的数字+数字 - > ASCII模块是否正常工作?” 和“我的LCD接口状态机模块是否正常工作”,我相信答案是肯定的,因为我已经使用ModelSim验证了它们的输出。 什么可能导致ModelSim模拟和现实世界行为之间的差异? |
|
|
|
深吸一口气。
我创建了一个单独的模块,它接受一个32位无符号数字和一个数字位置(32位数字中0到9:10可能的数字)并返回所需数字的ASCII字符; ASCII字符是我传递给LCD的。 该模块是异步的,但使用“使能”信号,并在其输出有效时置位“完整”信号。 “异步”是什么意思? 这是指“组合”,还是意味着“单独的时钟”,或者? 该模块是基于同步状态机的更大设计中的组件,该状态机根据请求写入LCD。 当我使用这些模块写入LCD时,事情不起作用 请解释一下“事情不起作用”的意思 但是当我将值硬编码到LCD上时(即我不使用之前描述的模块),LCD工作正常。 换句话说,您完全绕过“模块”,并将硬编码的ASCII值写入LCD并正确显示? 您知道“模块”是否可以正确地将相同的硬编码值传递给LCD? 你知道“模块”传递一个字符(而不是一个恒定的字符串吗?你知道“同步状态机”识别并接受“模块”中的“值”吗?你有一个示波器吗? 捕获并显示硬件中正确的事件序列? 显而易见的问题是“我的数字+数字 - > ASCII模块是否正常工作?” 和“我的LCD接口状态机模块是否正常工作”,我相信答案是肯定的,因为我已经使用ModelSim验证了它们的输出。 什么可能导致ModelSim模拟和现实世界行为之间的差异? 我一直在重复这个问题:调试的关键是将一个大问题分解成可以隔离和验证的小位。 分而治之。 根据你的写作,你至少有两个问题: 1.你的设计不起作用 2.您的模拟没有显示您的设计失败,并且模拟的有用性受到影响(为什么您认为模拟不会显示设计的失败?) 您想先调试设计,还是先调试模拟? 我再问你一次:你有可用的示波器吗? - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
对我最后一次疯狂的回复,我的沮丧嗤之以鼻。
通过异步,我的意思是设计中没有常规时钟源。 我有一个进程,其中包含'enable'信号和进程敏感性列表中状态机的状态,以及if语句中包含的进程内容,该语句检查启用信号进入模块的状态: 过程(en,state) 开始 如果en ='0'那么 - 设置默认值 其他 - 通过状态机移动 万一; 结束过程 我认为这可能不是最好的设计,并且已经将过程改为: 过程(CLK) 开始 如果rising_edge(clk)那么 如果en ='0'那么 - 设置默认值 其他 ---通过状态机移动 万一; 万一; 结束过程 我认为这是一个更好的设计,因为信号可以在时钟上升沿采样,并且应该在下一个上升沿有效(时钟周期为20ns)。 “事情不起作用”意味着lcd的信号,特别是数据字节,不是我想要的。 信号虽然转到液晶显示屏上,但我确实验证了这一点。 我验证了接受数字的模块,并返回数字中用户确定数字的ascii值; 我使用LED验证了它的输出,所以我知道它在现实世界中有效。 我需要检查的下一个模块是第一个模块和实际LCD屏幕之间的模块。 就是这样我现在很忙。 我设法得到了示波器; 并且其一次测试运行的输出如下。 我在启动信号的上升沿触发,当向LCD发送命令时必须将其置位,它没有显示但是在时间= 0时.ModeSim输出(我想要的)也在下面。 示波器输出大约是ModelSim输出中显示的使能信号的第一个断言。 我不相信'范围的输出。 下面的'范围输出是当我试图将'00111111'在第一个字节中发送到'范围然后'01011111'在第二个字节中发送到'范围时,你可以看到它与'匹配' 范围读数。 但后来我尝试将'00001111'和'00001111'发送到LCD,'示波器读数在整个采样时间内每个位都是逻辑'1',当我试图发送'01011111'和'10101111'时,看看是否 我可以检测到LCD中位的任何转换我仍然读取示波器上的所有逻辑'1',但我认为我已经接近找到我的问题了。 我检查了在项目导航器中运行布局布线程序时收到的警告,并且有些人说我的FSM的某些状态信号无法使用时钟模板进行路由,因此有过多的偏差; 可能这并不意味着我的状态机中移动到各种状态的信号无法到达,因此我没有向LCD发送正确的信号,因为我的应用程序的内部时间没有保持? 如何确保我的信号正确路由并保持信号偏斜可接受? 然后我可以消除这个问题的原因。 |
|
|
|
哨兵,
在最近的一篇文章中,你说: 我不相信'范围的输出。 你说的其他一切都表明你应该相信'范围的输出。 我无法从你的范围跟踪中学到任何东西,它缺乏任何有用的细节。 但是你的描述'它应该已经完成了这个,但是范围显示了其他东西'是你提前进行一些设计调试的线索。 当你有机会捕获更多的示波器轨迹时,我建议你放大LCD选通和数据位之间的时序关系,以验证与LCD数据表的对比: 频闪宽度 2.选通之前,期间和之后稳定的数据信号电平(即数据建立和保持时间) 3.捕获闪光灯上任何无意的毛刺或“欠幅脉冲”,表明接口状态机或时钟存在问题 与异步或多时钟设计相比,完全时钟同步设计风格在FPGA中的设计和调试要简单得多。 你的设计中没有任何东西,正如你到目前为止所描述的那样,它排除了完全同步的设计风格。 越早采用这种设计风格越好。 在我看来,延迟这将阻碍你作为设计师的发展(并且也会减慢你的项目)。 对于某些类型的问题,有充分的理由使用多个时钟或异步设计 - 但这些原因都不适用于(到目前为止)您的设计。 您的入门套件板上有时钟源,您需要学习如何使用它们。 根据您目前的专业水平,LCD界面的重新设计有点雄心勃勃。 如果我是您的老师或指导,我建议您重新使用Xilinx提供的原始设计,然后首先重新设计它的一小部分。 你可以通过从小开始,一次改变一件事,以及随时改正和学习来学习大量的东西。 这有助于建立时钟,状态机设计,逻辑设计,仿真,示波器技术,调试技术等方面的专业知识。通过每一步,您可以建立对自己和技能的信心。 找到自己(简短地)处于沮丧和感觉状态(你的话)“疯狂”表明你试图走得太快,你的设计开始看起来像一个深不可测的黑洞。 当发生这种情况时,是时候退一步,一次蚕食一小部分问题。 祝你顺利。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
你好
当我说我不应该相信'范围的输出时应该说的是我不认为我在测试中得到的结果是持久且可靠的。 你能否向我解释一下完全同步的设计是什么? 我相信你的定义远远超过我脑子里的定义。 有什么提示我如何减少这些偏差? |
|
|
|
完全同步的设计使用单个时钟。
所有其他信号都是数据 - 直接从寄存器输出或从寄存器输出中获得 - 所有这些信号都由相同的主时钟提供时钟。 在这样的系统中,唯一的时序问题是从一个寄存器输出到下一个寄存器输入的组合延迟。 控制信号和时钟使能仅仅是不同形式的数据信号,因为它们是从寄存器产生的,并且与所有其他数据信号共享与主时钟相同的定时关系。 这种方法消除了从一个寄存器到任何其他寄存器的匹配时钟时序关系(包括偏斜)。 同步系统的所有输入必须与主时钟同步。 不能将异步输入选通用作时钟。 必须注册选通,并且选通的同步版本用作控制输入或时钟使能。 时钟异步输入数据的唯一可接受的避免是限制数据的使用(采样)到已知输入数据稳定时(例如:将数据选通与主时钟同步,并使用sync'd选通作为 同步“数据有效”信号,可以对异步输入数据进行采样或处理)。 来自逻辑的任何输入 - 使用与主时钟具有不确定相位关系的时钟 - 必须被视为完全异步信号。 这种方法称为“时钟域交叉”。 编辑添加到原始帖子: 还有一件事:从来没有,永远关上时钟。 使用时钟启用。 我确信对“完全同步设计”这个术语有更多有说服力和更完整的描述,但这可以捕获大部分内容。 规则有例外,但要确保您坚持使用同步设计的基本价值。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
我的FSM状态的信号应该是数据信号还是时钟信号;
听起来好像它们应该是数据信号。 然而,我用于决策的状态信号和各种其他信号似乎被视为时钟信号,并且我收到警告,这些信号可能会经历过度偏斜。 如何强制将这些信号作为数据信号处理? 我是否必须实例化一个寄存器并通过它传递信号? |
|
|
|
为了清楚起见,我将重复一遍:完全同步的设计使用单个时钟。
只有一个时钟,一个时钟信号。 其他一切必须满足主时钟的设置和保持时间。 来自时钟域外的任何输入信号必须与主时钟同步(使用由主时钟提供时钟的寄存器),然后同步信号将满足所有其他数据信号的建立和保持时间要求。 同步状态机必须仅使用同步信号。 这并不像听起来那么强硬。 网上有大量的FSM教程。 如果您正在运行ISE,请访问HELP / SW MANUALS / XST用户指南。 点击进入UG627,第3章,FSM编码技术部分。 或者,您可以查看Xilinx为入门工具包提供的基本代码的代码,并查看代码中的FSM示例。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
嗨eteam00
只是为了让你知道我终于打败了我的LCD界面并且它正在工作; 在一天结束时,我没有足够密切地关注FSM模板; 通过XST报告,我认为甚至没有推断出FSM! 但是我已经对它进行了整理并且它有效(无论如何)。 让LCD接口工作后,我认为RS232接口实际上足以满足我的需求(甚至可能更好)并且大约在同一时间工作,哦,好吧。 虽然非常感谢,但在VHDL和调试技巧方面学到了很多关于FSM的知识。 蒂姆 |
|
|
|
只有小组成员才能发言,加入小组>>
2384 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2264 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2431 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
757浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
547浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
369浏览 1评论
1965浏览 0评论
684浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 15:10 , Processed in 1.609887 second(s), Total 107, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号