lcytms
发表于 2019-1-22 21:17:43
1341
用数据流引出来。
这种写法非常典型。
刚才讲了,就是输出类型改成buffer,这是有条件的,电路的设计模型有的时候不允许改成buffer,输出就是输出。
我们就用这种写法。
这是非常经典的一种写法。
直到今天,VHDL也仍然使用这种方法。
Ctrl-S、Ctrl-K。
报错,信号敏感表里面这个应该是int_q。
Ctrl-S、Ctrl-K。
好,现在来写验证。
新建VHDL文件。
现在我们知道,凡是要作为输出输入驱动的信号,你必须用中间信号的形式把它声明出来,然后做驱动,然后用数据流把它输出。
lcytms
发表于 2019-1-23 10:24:45
1342
另存为counter_vh_tb.vhd。
库声明,tb只要一个1164。
实体。
用行为写结构体。
然后写组件声明。
lcytms
发表于 2019-1-24 13:46:27
1343
复制端口。
然后声明tb内部的信号。
做例化,dut。
lcytms
发表于 2019-1-24 13:47:53
1344
端口的映射。
然后写它的激励。
先写时钟的激励。
带wait for不需要写信号敏感表,也不能写信号敏感表。
0 ns。
lcytms
发表于 2019-1-24 14:52:00
1345
Clk初始化为1,1比0好。
再等10ns,半周期,让它等于0。
再循环一次即可。
然后写复位信号。
上电以后,执行真值的复位。
lcytms
发表于 2019-1-25 21:44:01
1346
我们同样200.1ns,右侧逼近。
我们让它置位。
置位以后我们不希望它翻转,不希望它process回来。
就wait即可。
永远在这等着。
Ctrl-S、Ctrl-K。
然后取它的名字。
做仿真设置。
周期置为2us。
lcytms
发表于 2019-1-27 13:34:19
1347
执行一次跨平台检查。
报错。
赋值符写错了。
Std_logic,这个是单引号。
向量就是双引号。
执行仿真。
lcytms
发表于 2019-1-27 21:15:05
本帖最后由 lcytms 于 2019-1-27 21:35 编辑
1348
跟我们看到的任何一个计数器一模一样,只是描述方式的不同。
下面我来给大家写一个状态机。
VHDL的状态机是全面得到EDA理论体系的支持的。
也就是说现在的工具,Quartus的工具,ISE的工具,对VHDL的状态机的支持,远比对Verilog的状态机的支持要强大得多。
无论是现在Verilog有多成熟的发展,现在的工具体系里面,ISE、Quartus,它的基础的编译器,Synopsys基础的理论,仍然支持的是VHDL。
lcytms
发表于 2019-2-12 09:28:13
1349
我们同样用分频器来做例子,来做这个状态机。
Clk_in,复位。
lcytms
发表于 2019-2-12 09:29:30
1350
Clk_out。
有高电平、低电平的定参。
高电平默认为3,低电平默认为2。
可以分频。
Clk_out是fout。
这里是fin。
HW=LW,占空比为50%的时候,等于fin除以2倍的fout。
很容易推导出来。