VHDL程序翻译

VHDL程序翻译,第1张

你的程序没粘贴完

我只能给你解释一下,在你的程序中你首先定义了一个实体top,他拥有一个

32mhz的时钟输入口,一个单输入口handletoauto,一个7位向量输出口code1,以

及8位的向量输入口index1,单输出口high1和spkout,这些都是的卢的外部端口

。而后又定义了top的结构体behavior,他是反应top的内部结构的,在这其中又

调用了automusic组件,他是你在后面定义的一个实体,后面的component tone,

component speaker,也是和 automusic一样,signal tone2是一个整形信号变量

它的范围是从0到2047,接下来u0是将automusic组件的各个端口信号从左到右进

行一次映像,即将automusic的各端口值传送给top的外端口clk32MHZ,index1,

indx,handtoauto,u1,u2也是同样的意思。而在下面你就是定义了一个tone实

体,就是你上面调用的tone组件的实体,对应的端口定义就不解释了,我直接给

你分析process进程吧:它相当于一个无限循环,每次循环事都探测index信号,

当index取when后面的条件值时,那么tone0,code,high获得相应的赋值,当

index取值不是when后面的值时,那么执行when others。其实这很简单的,你仔细揣摩很容易。

SIGNAL write_addr : STD_LOGIC_VECTOR(5 DOWNTO 0)

声明了一组信号,信号名称write_addr,信号类型STD_LOGIC_VECTOR,这个信号的类型是个std_logic数组,它的下标变化范围是(5 DOWNTO 0),也就是说,有6位std_logic类型构成的数组。

说的白一些,就是信号(写地址)write_addr有6根地址线,名称是write_addr(5)~write_addr(0)。

信号read_addr也类似。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12206632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存