完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
` 本帖最后由 scan0123 于 2012-8-18 13:55 编辑 如图,为什么该编译图标是灰色的? 如何把vhdl代码转换成图形文件? 该文件为何无法编译成功? library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity Multiplier is generic ( DATA_WIDTH : natural := 4 ); port ( reset_n : in std_logic; clk : in std_logic; InputX : in std_logic_vector(DATA_WIDTH-1 downto 0); InputY : in std_logic_vector(DATA_WIDTH-1 downto 0); Cal : in std_logic; Result : out std_logic_vector(DATA_WIDTH*2-1 downto 0) ); end Multiplier; architecture Multiplier_arch of Multiplier is type MUL_DATA_ARRAY_TYPE is array (DATA_WIDTH-1 downto 0) of std_logic_vector(DATA_WIDTH*2-1 downto 0); signal mulDataArray : MUL_DATA_ARRAY_TYPE; begin mulDataArray_gen : for I in 0 to DATA_WIDTH-1 generate mulDataArray(I)(DATA_WIDTH*2-1 downto DATA_WIDTH+I) <= (others => '0'); mulDataArray(I)(DATA_WIDTH+I-1 downto I) <= InputX when InputY(I) = '1' else (others => '0'); mulDataArray(I)(I-1 downto 0) <= (others => '0'); end generate; process(reset_n, clk) variable resultTmp : std_logic_vector(DATA_WIDTH*2-1 downto 0); begin if reset_n = '0' then Result <= (others => '0'); elsif rising_edge(clk) then resultTmp := mulDataArray(0); for I in 1 to DATA_WIDTH-1 loop resultTmp := resultTmp + mulDataArray(I); end loop; if Cal='1' then Result <= resultTmp; end if; end if; end process; end Multiplier_arch; ` |
|
相关推荐
1个回答
|
|
现在还在用MAX+plusII?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1421 浏览 1 评论
1215 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1426 浏览 0 评论
913 浏览 0 评论
2229 浏览 0 评论
1426 浏览 34 评论
5612 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:41 , Processed in 0.439459 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号