斑竹请帮忙:Xilinx SRL16的仿真问题

[复制链接]
3217|9
 楼主| edacsoft 发表于 2011-8-15 14:21 | 显示全部楼层 |阅读模式
vhdl语言
没声明直接使用SRL16,modelsim报错。
声明时不知generic中参数INIT该怎么声明,目前这样写仍报错:
component SRL16
generic (
     INIT  : std_logic_vector(15 downto 0));

到底init该声明成什么类型呢?
lib中只有直接使用。
AutoESL 发表于 2011-8-15 14:58 | 显示全部楼层
报什么错误?贴一下吧
AutoESL 发表于 2011-8-15 15:09 | 显示全部楼层
VHDL Template:
-- Module: SHIFT_REGISTER_C_16
-- Description: VHDL instantiation template
-- CASCADABLE 16-bit shift register with enable (SRLC16E)
-- Device: Spartan-3 Generation Family
---------------------------------------------------------------------
-- Components Declarations:
--
component SRLC16E
-- pragma translate_off
generic (
-- Shift Register initialization ("0" by default) for functional
simulation:
INIT : bit_vector := X"0000"
);
-- pragma translate_on
port (
D : in std_logic;
CE : in std_logic;
CLK : in std_logic;
A0 : in std_logic;
A1 : in std_logic;
A2 : in std_logic;
A3 : in std_logic;
Q : out std_logic;
Q15 : out std_logic
);
end component;
-- Architecture Section:
-- Attributes for Shift Register initialization (“0” by default):
attribute INIT: string;
--
attribute INIT of U_SRLC16E: label is “0000”;
--
-- ShiftRegister Instantiation
U_SRLC16E: SRLC16E
port map (
D => , -- insert input signal
CE => , -- insert Clock Enable signal (optional)
CLK => , -- insert Clock signal
A0 => , -- insert Address 0 signal
A1 => , -- insert Address 1 signal
A2 => , -- insert Address 2 signal
A3 => , -- insert Address 3 signal
Q => , -- insert output signal
Q15 => -- insert cascadable output signal
);

http://www.xilinx.com/support/do ... n_notes/xapp465.pdf

评分

参与人数 2威望 +3 收起 理由
edacsoft + 1 3ks
SuperX-man + 2

查看全部评分

SuperX-man 发表于 2011-8-15 22:23 | 显示全部楼层
贴下错误,或者参考下楼上的模板
 楼主| edacsoft 发表于 2011-8-16 10:23 | 显示全部楼层
谢谢两位。
INIT : bit_vector := X"0000"是正确的
如果不声明,无法后仿真。
从software manuals -> libraries guides
或者language templete进去都是只有例化没有声明的,
不知X家咋想的。偶尔大家也想看看后防吧。

还有一个模块DCM_SP的声明我也得找找。
GoldSunMonkey 发表于 2011-8-16 18:50 | 显示全部楼层
这个初始化都是需要声明的。
GoldSunMonkey 发表于 2011-8-16 18:54 | 显示全部楼层
S3的DCM_SP
  1. DCM_SP
  2. VHDL
  3. Library UNISIM;
  4. use UNISIM.vcomponents.all;
  5. -- DCM_SP: Digital Clock Manager Circuit
  6. -- Spartan-3A
  7. DCM_SP_inst : DCM_SP
  8. generic map (
  9. CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
  10. -- 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
  11. CLKFX_DIVIDE => 1, -- Can be any interger from 1 to 32
  12. CLKFX_MULTIPLY => 4, -- Can be any integer from 1 to 32
  13. CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature
  14. CLKIN_PERIOD => 0.0, -- Specify period of input clock
  15. CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift of "NONE", "FIXED" or "VARIABLE"
  16. CLK_FEEDBACK => "1X", -- Specify clock feedback of "NONE", "1X" or "2X"
  17. DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", -- "SOURCE_SYNCHRONOUS", "SYSTEM_SYNCHRONOUS" or
  18. -- an integer from 0 to 15
  19. DLL_FREQUENCY_MODE => "LOW", -- "HIGH" or "LOW" frequency mode for DLL
  20. DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE
  21. PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255 to 255
  22. STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM_SP LOCK, TRUE/FALSE
  23. port map (
  24. CLK0 => CLK0, -- 0 degree DCM CLK ouptput
  25. CLK180 => CLK180, -- 180 degree DCM CLK output
  26. CLK270 => CLK270, -- 270 degree DCM CLK output
  27. CLK2X => CLK2X, -- 2X DCM CLK output
  28. CLK2X180 => CLK2X180, -- 2X, 180 degree DCM CLK out
  29. CLK90 => CLK90, -- 90 degree DCM CLK output
  30. CLKDV => CLKDV, -- Divided DCM CLK out (CLKDV_DIVIDE)
  31. CLKFX => CLKFX, -- DCM CLK synthesis out (M/D)
  32. CLKFX180 => CLKFX180, -- 180 degree CLK synthesis out
  33. LOCKED => LOCKED, -- DCM LOCK status output
  34. PSDONE => PSDONE, -- Dynamic phase adjust done output
  35. STATUS => STATUS, -- 8-bit DCM status bits output
  36. CLKFB => CLKFB, -- DCM clock feedback
  37. CLKIN => CLKIN, -- Clock input (from IBUFG, BUFG or DCM)
  38. PSCLK => PSCLK, -- Dynamic phase adjust clock input
  39. PSEN => PSEN, -- Dynamic phase adjust enable input
  40. PSINCDEC => PSINCDEC, -- Dynamic phase adjust increment/decrement
  41. RST => RST -- DCM asynchronous reset input
  42. );
  43. -- End of DCM_SP_inst instantiation
  1. // DCM_SP: Digital Clock Manager Circuit
  2. // Spartan-3A
  3. DCM_SP #(
  4. .CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
  5. // 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
  6. .CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
  7. .CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32
  8. .CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
  9. .CLKIN_PERIOD(0.0), // Specify period of input clock
  10. .CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift of NONE, FIXED or VARIABLE
  11. .CLK_FEEDBACK("1X"), // Specify clock feedback of NONE, 1X or 2X
  12. .DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
  13. // an integer from 0 to 15
  14. .DLL_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for DLL
  15. .DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
  16. .PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 255
  17. .STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE
  18. ) DCM_SP_inst (
  19. .CLK0(CLK0), // 0 degree DCM CLK output
  20. .CLK180(CLK180), // 180 degree DCM CLK output
  21. .CLK270(CLK270), // 270 degree DCM CLK output
  22. .CLK2X(CLK2X), // 2X DCM CLK output
  23. .CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
  24. .CLK90(CLK90), // 90 degree DCM CLK output
  25. .CLKDV(CLKDV), // Divided DCM CLK out (CLKDV_DIVIDE)
  26. .CLKFX(CLKFX), // DCM CLK synthesis out (M/D)
  27. .CLKFX180(CLKFX180), // 180 degree CLK synthesis out
  28. .LOCKED(LOCKED), // DCM LOCK status output
  29. .PSDONE(PSDONE), // Dynamic phase adjust done output
  30. .STATUS(STATUS), // 8-bit DCM status bits output
  31. .CLKFB(CLKFB), // DCM clock feedback
  32. .CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DCM)
  33. .PSCLK(PSCLK), // Dynamic phase adjust clock input
  34. .PSEN(PSEN), // Dynamic phase adjust enable input
  35. .PSINCDEC(PSINCDEC), // Dynamic phase adjust increment/decrement
  36. .RST(RST) // DCM asynchronous reset input
  37. );
  38. // End of DCM_SP_inst instantiation
快乐出发 发表于 2011-9-10 21:36 | 显示全部楼层
学习了。:handshake
ooljo 发表于 2011-9-11 19:05 | 显示全部楼层
讲解的好详细呀
ooljo 发表于 2011-9-11 19:05 | 显示全部楼层
受益匪浅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

246

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部