完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好。
我需要做点什么,但我不确切知道如何做。 当load = 0时,命令输入的array_vector。 在这种情况下D(8位)。 这是问题:我有一个8位的二进制输入,我需要将左边的零和右边的Ones。 例如,如果D(in)=“01101100”,(4 Ones和4 0s),Q(out)>> 图书馆IEEE; 使用ieee.std_logic_1164.all; 使用ieee.std_logic_unsigned.all; ----------------------------------------------实体定义 - -------------------------------------------------- - 实体punto_2是端口( - 输入端口重置,clk,加载:在std_logic; D:在std_logic_vector(7 downto 0); - 输出端口Q:输出std_logic_vector(7 downto 0));结束punto_2; - -------------------- Architecture Definition ---------------------------- ------ punto_2的架构rtl是----------------------信号定义--------------- ------------------------ 如果reset ='1'则开始进程(reset,clk,load),然后Q elsif rising_edge(clk)然后if(load ='1')然后temp elsif(load ='0')然后--HEREEEEE! 重要的是 -------------这就是我需要的代码,如果; 万一; 万一; Q结束过程; -------------------------------------------------- -------------------------------------- end rtl; |
|
相关推荐
8个回答
|
|
嗯,真正简单的方法是只有一个基于ROM的查找表。
256个8位值很容易适合9K块RAM,因此您只需将输入字节用作地址,RAM就会输出正确的字节。 否则,我建议只使用移位寄存器在每个时钟周期将值右移(或左移)一个元素。 如果最低(或最高,如果右移)位为1,则将1移入输出寄存器,否则不执行任何操作。 在Verilog中,因为我在VHDL上无望: reg [7:0] regOut; reg [7:0] temp; 总是@(posedge clk){ 如果(重置)开始 REGOUT 你甚至不需要检测字节的结尾; 这是自动处理的。 在原帖中查看解决方案 |
|
|
|
嗨@ sgthedreamer95
阅读输入数组& 与1/0比较。 然后根据结果,您可以在输出数组中安排它。 谢谢,维杰----------------------------------------------- ---------------------------------------------请将帖子标记为 一个答案“接受为解决方案”,以防它有助于解决您的查询。如果一个帖子引导到解决方案,请给予赞誉。 |
|
|
|
|
|
|
|
嗨@ sgthedreamer95
如果使用循环是一个限制,您可以尝试直接索引(如(1)...)。 与循环逻辑相比,这可能会在很少的代码中结束。 谢谢,维杰----------------------------------------------- ---------------------------------------------请将帖子标记为 一个答案“接受为解决方案”,以防它有助于解决您的查询。如果一个帖子引导到解决方案,请给予赞誉。 |
|
|
|
嗯,真正简单的方法是只有一个基于ROM的查找表。
256个8位值很容易适合9K块RAM,因此您只需将输入字节用作地址,RAM就会输出正确的字节。 否则,我建议只使用移位寄存器在每个时钟周期将值右移(或左移)一个元素。 如果最低(或最高,如果右移)位为1,则将1移入输出寄存器,否则不执行任何操作。 在Verilog中,因为我在VHDL上无望: reg [7:0] regOut; reg [7:0] temp; 总是@(posedge clk){ 如果(重置)开始 REGOUT 你甚至不需要检测字节的结尾; 这是自动处理的。 |
|
|
|
@ u4223374dude,你的答案很棒,但我不理解这一行...其余的代码是的。
if(temp [0])开始 REGOUT :D这正是我需要的,我只需要了解那条线的作用。 如果你可以帮助我,那我真的会对那个男人有所帮助。 |
|
|
|
|
|
|
|
@ sgthedreamer95
我想你已经为自己想出来了,但是这条线只是将输出寄存器向左移动一个位置,并在右端插入1。 显然逆转它(所以你最终得到左边的那些和右边的零)将是微不足道的。 |
|
|
|
只有小组成员才能发言,加入小组>>
2379 浏览 7 评论
2794 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2261 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2427 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
755浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
543浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
364浏览 1评论
1960浏览 0评论
681浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:48 , Processed in 6.063909 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号