完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
VHDL代码如下:
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENtiTY selector IS PORT ( CLK : IN STD_LOGIC; -- DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --输入用下面定义信号代替 POUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); FOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END selector; ARCHITECTURE behav OF selector IS SIGNAL FOUT_R : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL POUT_R : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL CNT : STD_LOGIC_VECTOR(2 DOWNTO 0):="001" ; SIGNAL DIN : STD_LOGIC_VECTOR(7 DOWNTO 0):="00000001" ; --设定输入初值,用作8位输入值 BEGIN PROCESS(CLK ) BEGIN IF CLK'EVENT AND CLK = '1' THEN CASE CNT IS WHEN "001" =>FOUT_R(7 DOWNTO 0) <=DIN;CNT<=CNT+1; WHEN "010" =>FOUT_R(15 DOWNTO 8) <=DIN;CNT<=CNT+1; WHEN "011" =>FOUT_R(23 DOWNTO 16) <=DIN;CNT<=CNT+1; WHEN "100" =>FOUT_R(31 DOWNTO 24) <=DIN;CNT<=CNT+1; WHEN "101" =>POUT_R(7 DOWNTO 0) <=DIN;CNT<=CNT+1; WHEN "110" =>POUT_R(15 DOWNTO 8) <=DIN;CNT<="001"; WHEN OTHERS =>CNT<="001"; END CASE; END IF; END PROCESS; POUT<=POUT_R(9 DOWNTO 0); FOUT<=FOUT_R; END behav; Warning: Design contains 1 input pin(s) that do not drive logic Warning (15610): No output dependent on input pin "clk" 编译器警告:输出不依赖输入信号“CLK”。 下载芯片验证也是CLK信号没有任何作用,即使没给CLK脉冲信号,case里的6个赋值语句都动作了。 小弟编程水平有限,不懂程序这样设计是否正确, 请求大神帮忙指点,小弟在此谢过!! |
|
相关推荐
4个回答
|
|
|
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY selector IS PORT ( CLK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --输入用下面定义信号代替 --POUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); POUT1 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); POUT2 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); POUT3 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); POUT4 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); POUT5 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); POUT6 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END selector; ARCHITECTURE behav OF selector IS SIGNAL FOUT_R : STD_LOGIC_VECTOR(31 DOWNTO 0):= "00000001000000010000000100000001"; SIGNAL POUT_R : STD_LOGIC_VECTOR(15 DOWNTO 0):="0000000100000001"; SIGNAL CNT : STD_LOGIC_VECTOR(2 DOWNTO 0):="001" ; --SIGNAL DIN : STD_LOGIC_VECTOR(7 DOWNTO 0):="00000001" ; --设定输入初值,用作8位输入值 BEGIN PROCESS(CLK ) BEGIN IF CLK'EVENT AND CLK = '1' THEN CASE CNT IS WHEN "001" =>FOUT_R(7 DOWNTO 0) <=DIN;CNT<=CNT+1; WHEN "010" =>FOUT_R(15 DOWNTO 8) <=DIN;CNT<=CNT+1; WHEN "011" =>FOUT_R(23 DOWNTO 16) <=DIN;CNT<=CNT+1; WHEN "100" =>FOUT_R(31 DOWNTO 24) <=DIN;CNT<=CNT+1; WHEN "101" =>POUT_R(7 DOWNTO 0) <=DIN;CNT<=CNT+1; WHEN "110" =>POUT_R(15 DOWNTO 8) <=DIN;CNT<="001"; WHEN OTHERS =>CNT<="001"; END CASE; END IF; END PROCESS; POUT1<=FOUT_R(7 DOWNTO 0); POUT2<=FOUT_R(15 DOWNTO 8); POUT3<=FOUT_R(23 DOWNTO 16); POUT4<=FOUT_R(31 DOWNTO 24); POUT5<=POUT_R(7 DOWNTO 0); POUT6<=POUT_R(15 DOWNTO 8); FOUT<=FOUT_R; END behav; 你试试看看是不是你想要的 |
|
|
|
|
菩提wei 发表于 2013-8-23 10:10 这样也没解决问题呀,我设计这个模块并不需要POUT1——POUT6这些接口的,这样修改也就是多增加这几个接口而已吧。关键问题是要使case里的赋值语句受CLK信号控制, 而我那个程序即使没给CLK脉冲,CASE 里的赋值语句就全都被赋值了 |
|
|
|
|
|
其实问题在这里Warning (10540): VHDL Signal Declaration warning at selector.vhd(15): used explicit default value for signal "DIN" because signal was never assigned a value你的源程序中将port里的DIN没有而是用了一个signal 的DIN,quartus ii并没有将你赋的初值送给signal 的DIN导致了当时钟上升沿来临时,没有值赋给FOUT_R和POUT_R 于是clk不起作用
|
|
|
|
|
小小鱼鱼 发表于 2013-8-23 15:57 “quartus ii并没有将你赋的初值送给signal 的DIN导致了当时钟上升沿来临时,没有值赋给FOUT_R和POUT_R 于是clk不起作用”。那个程序 也并不是这样的,不管给还是没给CLK脉冲,CASE 里的赋值语句就全都被赋值了,当然FOUT_R和POUT_R 也都被赋值了。 不过问题的确是由于定义的signal DIN的原因,本来想图个方便,定义一个signal DIN 作为8位输入数据,结果反而出错了。把DIN 定义为端口就没有了错误,验证也完全通过,这个错误的原因是这样解释:定义信号DIN的话,就直接和FOU_R和POUT_R链接起来,简单的说就是形成了内部电路,已经固定的链接起来,所以CLK不起作用。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
647 浏览 0 评论
NVMe over Fabrics 国产 IP:高性能网络存储解决方案
618 浏览 0 评论
130 浏览 0 评论
NVMe高速传输之摆脱XDMA设计54:如何测试队列管理功能2
422 浏览 0 评论
NVMe高速传输之摆脱XDMA设计53:如何测试队列管理功能
748 浏览 0 评论
4573 浏览 64 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 17:59 , Processed in 0.724834 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2900