找回密码
 注册
关于网站域名变更的通知
查看: 346|回复: 1
打印 上一主题 下一主题

VHDL程序包问题 

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-3 09:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
VHDL程序包问题 0 |0 o+ ~) x6 n8 u2 @
VHDL程序包里的过程和函数有声明有实现, 其他地方可以直接调用, 但是关于component为什么只能有元件声明, 而没有元件实现呢? + g( Q( I) Z0 w, R3 o6 i' I
这样别的程序包含这个程序包也不能使用这个元件了吧?  元件实现要在哪里写呢? 能举个例子. }' T+ o& c  r$ K0 T4 ^' o
不知道这么写合不合规矩, 只是这样可以使用8 ~, [1 d  B" `4 u0 W0 J) f& {
--Filename                : ll_pkt.vhd
: i6 M6 o+ @; Y2 n* J--Author                : kalo* f; ?7 }, R3 o* n* ^
--Description        : something for my own use
# f( u2 _: ]# l3 K$ a  c
3 {, A* A; u7 e( G8 B7 y3 F- t" w5 [2 @! F' S# c$ h8 r5 u
library IEEE;  L$ n( K$ R; L; w  M5 X! e- r. p
use IEEE.std_logic_1164.all;# N6 c! K! [' r% L3 M5 q

& ^$ Q( B8 M2 d! T: m" O4 H( spackage ll_pkt is
6 F% \7 x6 t6 r) z- y; v4 x! g
) W: v" Y! r$ e. ]; a7 I: |! q        -- A component for reset signal sync output
! z# @! F  H9 Z! p5 \. v; I2 ~5 Y' W        component RST_SYNC                - U' a0 [0 x% B; U. E  R
        port (! b: D: Q# ]8 Y; g2 X
                        Clk                : in std_logic;
: V& x3 }9 D. @8 g& Y                        R_async        : in std_logic;
) B* O2 I+ _; Z, l  w8 \3 H/ O                        R_sync        : out std_logic+ Z. _" G# g" s
                );7 t+ W& t3 O- ^& S- y
        end component;, p' z- J6 e- f; b- H% H
end ll_pkt;
- b" }6 T# g3 u1 Q          r; S3 R/ D6 ^% t
+ _; j$ A& s, N
--------------------RST_SYNC----------------------------------
' V( d+ {$ b8 S. ?9 }: Rlibrary IEEE;
; ^0 n6 s# V, g+ O2 juse IEEE.std_logic_1164.all;
% _; A+ J. Q; y' {8 ?
. V4 z. d1 X$ p8 {entity RST_SYNC is ) h! v* ~' E* f. \& m/ T
        port(! G0 S8 |4 f' ?& o% t/ W8 f/ `
                        Clk                : in std_logic;
5 H% F, a* e4 ~, J* I                        R_async        : in std_logic;
* M/ ^1 |$ ~$ O5 Y                        R_sync        : out std_logic
) u0 |6 l0 d7 z# l# T, K9 i                );
' U' k4 s/ `% `, Y$ xend RST_SYNC;$ l5 a- a! S: q
- D9 G6 R( R' V* z! n" ?
architecture BEHAVIOR of RST_SYNC is # ^9 s5 E6 G- x  z1 o
        signal reg_L1 : std_logic;                --latch async reset signal level 1        $ r2 I4 s1 h  Q3 M/ z% x; s
        signal reg_L2 : std_logic;                --latch async reset signal level 2
) \3 E, ^9 c4 q  Fbegin
6 W& z( t& @: Y: Q2 h! O7 t: u        R_sync <= reg_L2;                        --reset signal out
9 R+ z; Z" u; B& U% X: H) V' }  I
  S" F" n+ J& T& D* a$ G9 G! _, d  e        Main : process(Clk, R_async)
9 r+ T4 x! a2 \) L+ h        begin
' @$ I: S( p! P1 u3 o' C                if (R_async = '0') then% U3 L7 i4 S8 O
                        reg_L1 <= '0';7 T4 d- T4 \! g$ U* T( b3 J
                        reg_L2 <= '0';
2 r* F; i( F. Q                elsif (Clk'event and Clk = '1') then
# h# H. v7 A2 M; M2 a9 v  d                        reg_L1 <= '1';
; @7 |$ E* c8 S3 e9 C- U/ X                        reg_L2 <= reg_L1;% s. k' t1 [4 D. M" n
                end if;8 V# W, _0 U8 S8 Z
        end process;
2 e7 _: K% w5 O' D3 {& Lend BEHAVIOR;  L2 p# c( h7 |
---------------------------------------------------------------# ~2 C/ I! L- h, z, Q- o
4 z# x1 C3 b0 k4 _& M* y$ k" q

! E4 ?& B& e2 d----------------------package body for other types--------------# F: K, ^4 C2 a" T- _* x# v
package body ll_pkt is
/ j6 {! Y7 j" G4 O" }        ----" l2 R4 X! i" Y2 A6 K" y# H6 _
end ll_pkt;7 E$ J; \* b& M2 R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 19:13 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表