完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我正在学习VHDL。 我根据其数据表原理图(使用d -flipflops)使用VHDL编写了4017b解码计数器。 我能够完美地模拟它。 现在我想尝试4017b做一些不同的事情 由于它有10个解码输出,我想在它达到第6个解码输出时复位4017.因此它从第1个解码输出重新开始,以便它反复重复。 我写过使用端口映射。 reset1 reset1; D1 => D1_1, D2 => D2_1, ------------------- d10 => d10_1); 我的主要4017b vhdl代码是 实体a4017是端口(CLK:在STD_LOGIC;复位:在STD_LOGIC; clk_inhibit:在STD_LOGIC; Q1:INOUT STD_LOGIC; Q2:INOUT STD_LOGIC; Q3:INOUT STD_LOGIC; Q4:INOUT STD_LOGIC; Q5:INOUT STD_LOGIC; D0:出STD_LOGIC; D1:出STD_LOGIC; D2:出STD_LOGIC; D3:出STD_LOGIC; D4:出STD_LOGIC; D5:出STD_LOGIC; D6:出STD_LOGIC; D7:出STD_LOGIC; D8:出STD_LOGIC; D9:出STD_LOGIC; D10:出STD_LOGIC) ;端a4017; a4017的架构行为是 - 信号Q3A:STD_LOGIC:= '0'; begin-- Q3过程(CLK)开始,如果复位= '1',那么D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10否则,如果 clk_inhibit = '0',则如果(Q1 Q1 END IF;如果(Q2 Q2 END IF;如果(Q3 Q3 END IF;如果(Q4 Q4 END IF;如果(Q5 Q5 END IF;如果DFF1(CLK)则Q1结束时,如果 ;如果DFF1(CLK)然后Q2 END IF;如果DFF1(CLK)然后Q3 --q3 END IF;如果DFF1(CLK)然后Q4 END IF;如果DFF1(CLK)然后Q5 END IF; D0 D1 D2 D3 D4 D5 d6 d7 d8 d9 d10 end if; end if; end process; end Behavioral; 非常感谢您的回复。 以上来自于谷歌翻译 以下为原文 Hi all, I am learning VHDL by my self. I have written 4017b decode counter using VHDL according to its datasheet schematic (with d -flipflops). Iam able to simulate it perfectly. Now iam trying to do 4017b little differently like As it has 10 decoded outputs, i want to reset 4017 when it reaches 6th decoded output.so that it starts over from 1st decoded output so that it repeats over and over. I have written using port maps like. reset1 <= reset_top or d1_6; Port map ( reset=> reset1; d1=>d1_1, d2=>d2_1, ------------------- d10 =>d10_1); My main 4017b vhdl code is entity a4017 is Port ( clk : in STD_LOGIC; Reset :in STD_LOGIC; clk_inhibit : in STD_LOGIC; q1 : inout STD_LOGIC; q2 : inout STD_LOGIC; q3 : inout STD_LOGIC; q4 : inout STD_LOGIC; q5 : inout STD_LOGIC; d0 : out STD_LOGIC; d1 : out STD_LOGIC; d2 : out STD_LOGIC; d3 : out STD_LOGIC; d4 : out STD_LOGIC; d5 : out STD_LOGIC; d6 : out STD_LOGIC; d7 : out STD_LOGIC; d8 : out STD_LOGIC; d9 : out STD_LOGIC; d10 : out STD_LOGIC); end a4017; architecture Behavioral of a4017 is --signal q3a : std_logic := '0'; begin -- q3 <= '0'; process (clk) begin if Reset='1' then d0 <='0'; d1 <='0'; d2 <='0'; d3 <='0'; d4 <='0'; d5<='0'; d6<='0'; d7<='0'; d8 <='0'; d9 <='0'; d10<='0'; else if clk_inhibit = '0' then if (q1 <= 'U') then q1 <= '0'; end if; if (q2 <= 'U') then q2 <= '0'; end if; if (q3 <= 'U') then q3 <= '0'; end if; if (q4 <= 'U') then q4 <='0'; end if; if (q5 <= 'U') then q5 <='0'; end if; if dff1(clk) then q1 <= not (q5); end if; if dff1(clk) then q2 <= q1 ; end if; if dff1(clk) then q3 <= (((not (q1)) and (not (q3))) nor (not (q2))); --q3 <= ((q1 or q3) and q2); end if; if dff1(clk) then q4 <= q3; end if; if dff1(clk) then q5 <= q4; end if; d0 <= ((not(q5)) and (not(q1))); d1 <= ((q1) and (not (q2))); d2 <= ((q2) and (not (q3))); d3 <= ((q3) and (not (q4))); d4 <= ((q4) and (not (q5))); d5 <= (q1 and q5); d6 <= ((not (q1)) and q2); d7 <= ((not (q2)) and q3); d8 <= ((not (q3)) and q4); d9 <= ((not (q4)) and q5); d10 <= not (q5); end if; end if; end process; end Behavioral; Thank you very much for your replies. |
|
相关推荐
2个回答
|
|
你好
我不能通过VHDL来指导你(也没有任何其他人) 但我可以建议你买一两本书来解决这些问题。 你的开始很好, 作为指针,您需要查看std_logic_vector,而不是使用inout,使用信号并考虑函数而不是寄存器。 以上来自于谷歌翻译 以下为原文 Hi I can't tutor you ( nor any one else ) through VHDL but I can suggest get a book or two and work through them. Your starting well, As pointers, you need to look at std_logic_vector, not using inout's , using signals and think about the function not the registers. |
|
|
|
从哪里开始,除了说:买Peter Ashenden的书。
Next:将q和d声明为向量,而不是单独的位。 q还需要三态启用和三态驱动程序。 ----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 Where to begin, other than to say: Buy Peter Ashenden's book. Next: declare q and d as vectors, not as individual bits. q also needs a tristate enable and tristate drivers. ----------------------------Yes, I do this for a living. |
|
|
|
只有小组成员才能发言,加入小组>>
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-25 08:39 , Processed in 1.413815 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号