用VHDL语言编写程序

用VHDL语言编写程序,第1张

我用quartusⅡ凯敏已编译嫌链并且仿真都对的,我写的是0亮1灭,如果实际情况与这相反,你自己倒一下。

LIBRARY IEEE

USE IEEE.STD_LOGIC_1164.ALL

USE IEEE.STD_LOGIC_SIGNED.ALL

USE IEEE.numeric_std.all

ENTITY test IS

PORT (clock: in std_logic -----clock1加48MHz的信号

row: out std_logic_vector(0 to 7))

END test

ARCHITECTURE behave OF test IS

CONSTANT fp_clka:INTEGER:=12000000 ---扫描信号频率为2Hz

SIGNAL a: INTEGER RANGE 0 TO 12000001

signal saomiao :integer range 0 to 9

SIGNAL clka: std_logic

BEGIN

PROCESS (clock)

BEGIN

IF rising_edge(clock) THEN

IF a<fp_clka then --clka

a<=a+1

clka<=clka

ELSE

a<=0

clka<= NOT clka

end if

end if

end process

process(clka)

BEGIN

IF rising_edge(clka) THEN

saomiao<=saomiao+1

if saomiao=9 then

saomiao<=0

end if

case saomiao is---'1'代表不亮,'0'代盯者枝表亮

when 0 =>row<="01111111"

when 1 =>row<="10111111"

when 2 =>row<="11011111"

when 3 =>row<="11101111"

when 4 =>row<="11110111"

when 5 =>row<="11111011"

when 6 =>row<="11111101"

when 7 =>row<="11111110"

when 8 =>row<="00000000"

when others =>row<="11111111"

END CASE

END IF

end process

END behave

vdhl程序开头是entity的定义和architecture的雹薯声明,最后是end architecture。下面是一个vdhl的例子,你对比一下好了

entity bit_rtl_adder(实体名称) is

   port (      in1  : bit_vector      in2 胡御 : bit_vector      cntl : bit     源做者 pout : out bit_vector   ----端口名称 方向 类型   )end bit_rtl_adder 

architecture func(构造体名称) of bit_rtl_adder(实体名称) is

beginp1: process(cntl)   begin      if cntl='1' then         pout <= in1+in2     

end if  

end process

end  func

你的那些代码,需要增加

本文介绍如何写testbench来仿真VHDL程序。 通常testbench完成如下的任务:1. 实例化需要测试的设计(DUT);2. 通过对DUT模型加载测试向量来仿真设计凯配;3. 将输出结果到终端或波形窗口中加以视觉检视;4. 另外,将实际结果和预期结果进行比较。 一、构建Testbench 本文用VHDL来写,由于testbench只用来进行仿真,它们没有那些适用于综合的RTL语言子集的语法约束限制,而是所有的行为结构都可以使用。所有testbench包含了以下的基本程序段:Entity and Architecture Declaration Signal Declaration Instantiation of Top-level Design Provide Stimulus. 在ISE工程中添加source:VHDL Test Bench到顶层文件,在source for 选项中选择Behavioral Simulation。你会发现Test Bench中有很多已经自动写好,可根据自己的设计需要改写程序。其中Entity是空的,由于是仿真,不必有管脚的输入输出,只要写好激励信号就可以了。 二、双击Simulate Behavioral Model进行Modelsim仿真 我们在modelsim仿真的过程中,如果想改写激励程序,点击environment back(图中向左的箭头),回到激励程序的编写环境。可以利用其提供的模板直接改写testbench,点source->show language template,需要将read only取消掉,否则无法改写。本人建议答孙庆,在这个环境中可以看到模板,你可以根据需要将相应的语句拷到VHDL Testbench中去。 这里只是简单介绍如何用test bench来仿真VHDL程序,其中各种激励信号的编写、时序的安排要依靠设计的需要,这些只能靠平时不断的积累。 这里介绍的是从ISE中直接调用modelsim进行仿真,因此关于ISE和modelsim的关联也是大家清握经常遇到的问题。这个下次再总结。


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

原文地址:https://54852.com/yw/12319876.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存