最近读了许多VHDL代码,虽然没有系统的学过,但还是能看懂,把常用的贴着,部分还是能结合verilog理解。
常用的头:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
顶层文件结构:
--这部分相当于verilog中的module模块端口声明---------------
ENTITY top IS
PORT(
CLKIN:
IN STD_LOGIC;
...
LED:
OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
);
END top;
--接下来是ARCHITECTURE部分,顶层模块分几个元件----
ARCHITECTURE rtl of top IS
COMPONENT a
PORT(
CLKIN:
IN STD_LOGIC;
...
);
END COMPONENT;
COMPONENT b
PORT(
...
);
END COMPONENT;
--常数说明,相当于Verilog中的parameter------------------------
CONSTANT VCC :STD_LOGIC := '1';
--信号说明,相当于verilog中的reg----------------------------------
SIGNAL VCC_CON : STD_LOGIC;
SIGNAL SL : STD_LOGIC_VECTOR(3 DOWNTO 0);
--元件例化,相当于verilog中的模块调用和端口映射-----------
BEGIN
--模块实例名 :模块名
ADJUST_CONTROL: adjuster
PORT MAP(
自身端口名 => 连接端口名,
自身端口名 => 连接端口名,
...
);
SEC_CONTROL: counter60
PORT MAP(
...
);
--最后结束结构体------------------------------------------------------
END rtl;
一般非顶层文件的结构:
--库
--ENTITY声明
--ARCHITECTUREK开始
--声明CONSTANT/SIGNAL
--开始进程
BEGIN
--多个并列的process相当于verilog中的always,是并行的--
LOW_PROCROCESS(CLKIN,EN)
BEGIN
IF rising_edge(CLKIN) THEN
...
END IF;
END PROCESS;
HIGH_PROCROCESS(CLKIN,EN)
BEGIN
...
END PROCESS;
--穿插着一些赋值语句----------------------------------------------
--这些语句相当于verilog中的assign,输出缓冲的风格-----
LOW <= LOW_REG;
HIGH <= HIGH_REG;
--最后结束结构体----------------------------------------------------
CASE结构(用于状态机,多路选择等):
sel_stateROCESS(reset,clk)
BEGIN
IF reset = ‘0’ THEN
state <= Idle;
...
ELSEIF rising_edge(clk) THEN
CASE state IS
WHEN led1
=>
q <= ..;
state <= led2;
WHEN led2
=>
q <= ..;
state <= led3;
WHEN led3
=>
q <= ..;
state <= led4;
...
END CASE;
END PROCESS;
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |