博文

〖004〗模60计数器BCD码输出 [AHDL](2006-10-02 10:22:00)

摘要:qh[3..0]、ql[3..0]分别输出高位和低位的BCD码。 subdesign bcd_m60
(
    clk, cr, en               : input;
    qh[3..0], ql[3..0], c0    : output;
)
variable
    counth[3..0], countl[3..0]: dff; begin
    counth[].clk = clk;
    countl[].clk = clk;
    counth[].clrn = cr;
    countl[].clrn = cr;
    qh[] = counth[];
    ql[] = countl[];
   
    if en then
        if countl[] < 9 then
            countl[] = countl[] + 1;
            counth[] = counth[];
            c0 = gnd;
   ......

阅读全文(5735) | 评论:1

〖004〗 7段译码器 [AHDL](2006-09-27 17:13:00)

摘要:课上老师讲的, 真值表方式:

SUBDESIGN 7seg
(
    i[3..0]             : INPUT;
    a, b, c, d, e, f, g : OUTPUT;
) BEGIN     TABLE
        i[3..0] => a, b, c, d, e, f, g;
             0  => 0, 0, 0, 0, 0, 0, 1;
             1  => 1, 0, 0, 1, 1, 1, 1;
             2  => 0, 0, 1, 0, 0, 1, 0;
             3  => 0, 0, 0, 0, 1, 1, 0;
             4  => 1, 0, 0, 1, 1, 0, 0;
             5  => 0, 1, 0, 0, 1, 0, 0;
 &......

阅读全文(4100) | 评论:0

〖003〗三位加法器 [Verilog HDL模块的基本概念](2006-06-16 21:36:00)

摘要:参考:  《CPLD与单片机综合应用技术》(周立功)
实验板: 网助二号 例 5.2.3 module adder(count, sum, a, b, cin);
input [2:0] a, b;
input cin;
output count;
output [2:0] sum; assign {count, sum} = a + b + cin; endmodule

★ 此例描述了一个名为adder的三位加法器,可根据2个三比特数a、b及进位(cin)计算出和(sum)以及向上进位(count)。 "{  }"是拼接符,把count和sum拼接为一个4位的信号。

如何验证其正确性呢?开始将a的3个端口接了三个拨码开关,b的3个端口接了三个按钮开关(因为板上资源只有4个拨码开关和4个按钮开关),将相加得到的和sum的三个端口接三个LED显示结果, 进位位count同样接LED显示是否有进位,进位cin置为0。虽然这样的接法可以通过开关输入两个加数,也能看到结果,得出该模块的正确性,但总觉得这么手工输入的办法有些蠢,也没有发挥这块板MCU+CPLD综合的优势,于是产生如下方案。

用51单片机的P0口低3位产生被加数a, P2口低3位产生加数b, 得到的和还有进位仍然通过LED显示。开始想用二重循环产生所有的组合,被加数有8种情况,加数有8种情况,共可得到8×8=64种组合,但这样一来即不容易验证,二来也没必要,所以最终决定将b数值确定为01h, 而a的值由000b递增为111b这8个状态,分别与b相加后得到结果为001b,010b,011b,……,111b(第7个结果),再加01h后将产生进位,与后三位合并后为1000b,每个状态后延时1s以便观察,如此循环。上述过程中前一级的进位cin接地,即始终为0。

51单片机程序:

          org    0000h
start:    mov    p2, #01h
 &......

阅读全文(7604) | 评论:0

〖002〗二选一多路器[Verilog HDL模块的基本概念](2006-06-10 16:01:00)

摘要:参考:《单片机与CPLD综合应用技术》(周立功)
实验板: 网助二号 从几个简单Verilog HDL程序了解Verilog HDL模块的特性。

例5.2.1

module muxtwo(out, a, b, sl);
input  a, b, sl;
output out;
reg out;
    always @ (sl or a or b)
        if(!sl)
            out = a;
        else
            out = b;
endmodule

这几天看了许多不常见的符号,正好拿来组成以下框图表示上述模块:

         ____
a ───┤   ╲
        ㄧ    ├─── out
b ───┤   ╱
          ̄ ̄ㄧ
sl ─────┘

由于Verilog HDL是与C语言类似的, 所以不难理解此模块muxtwo的作用。这是一个二选一多路器(想起了数电里学过的数据选择器,又叫多路选择器Multiplexer, 简写为MUX), 即选择由out端输出a还是b由sl电平决定。sl为0时输出out与a相同; 否则与b相同。"always @ (sl or a or b)"这一句表示只要sl,或a,或b其中有一个变化,就执行下面......

阅读全文(8562) | 评论:0

〖001〗三人表决器(2006-05-02 21:57:00)

摘要:万事开头难啊,Blog开这了个EDA·HDL〖〗分类,Starting ……
关于下载线的驱动配置,参见:安装下载电缆的驱动程序。
实验参考: 10分钟学会PLD设计。
实验板:   网助二号。

实验题目:
分别采用VHDL、Verilog-HDL和原理图输入方式设计一个简单的三人表决器,并下载到实验板进行实际运行。 三人表决器的功能描述:三个人分别用手指拨动开关SW1、SW2、SW3来表示自己的意愿,如果对某决议同意,各人就把自己的指拨开关拨到高电平(上方),不同意就把自己的指拨开关拨到低电平(下方)。表决结果用LED(高电平亮)显示,如果决议通过那么实验板上L2(绿灯,本实验板上为L1)亮;如果不通过那么实验板上L1(红灯,本实验板上为L5)亮;如果对某个决议有任意二到三人同意,那么此决议通过,L2亮;如果对某个决议只有一个人或没人同意,那么此决议不通过,L1亮。
方案一:采用原理图输入
方案二:采用VHDL语言 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY majority_voter IS
   PORT(SW : IN std_logic_vector(3 DOWNTO 1);
        L : OUT std_logic_vector(2 DOWNTO 1));
END majority_voter; ARCHITECTURE concurrent OF majority_voter IS BEGIN
    WITH SW SELECT
      L <= "10" WHEN "011",
           "10" WHEN "101",
           "1......

阅读全文(8960) | 评论:3

〖000〗CPLD实验板之网助二号(2006-05-02 21:40:00)

摘要:这块板是一个MCU+CPLD的综合板,是笨笨工作室为帮助爱好者实践所设计的一块板,它是笨笨老师网助计划的第二块板,有兴趣的请到笨笨工作室查看网助2号。


 以下资源的介绍均来自于笨笨工作室, 贴上来方便查阅: ★公用部分功能:
(1)双电源供电系统,使你在任何时候都能方便的使用,并教会你如何设计稳压电路和USB供电的知识,可外接直流9V或者USB口取电,USB口有保护电路设计,确保计算机不受影响。
(2)输入输出设备:8个跑马灯指示、四个数码管显示、四个按键输入、四个拨码开关,可以满足你如何的输入要求。
(3)通信设备:具有RS232接口便于和其他单片机系统或者计算机进行通信;
(4)音乐设备:蜂鸣器奏出的《祝你平安》和《生日快乐》你听过吗?酷极拉!
(5)红外接口设备:板子有一个红外接近开关电路,就象自动开关的门的功能你2分钟就可以实现;还有一个红外接收接口,用来接收各种遥控器的信号的,也许你听说过万能遥控器吧,有兴趣你可以做做。
(6)输出电源:板子为外部电路提供5V电压输出。 ★单片机特有功能:

(1)传感器输入设备:有一个DS180温度信号输入接口,已具有AD采集输入功能,加上AD芯片即可调试AD采集,完成大部分测控系统功能。
(2)液晶显示接口:具有1602型字符液晶、122×32、128×64等各种点阵液晶的并口、串口双接口,非常方便你使用。
(3)PC键盘接口:有很多人很喜欢用单片机控制计算机的键盘来输入,这样就有了103的按键,非常好玩并不用作电路,你要是需要或者有兴趣,这个板子直接有PC键盘接口,插上键盘,你就可以有一大堆按键拉,^_^。
(4)扩展接口:板子把单片机的40个管脚全部扩展出来,便于你扩展其他功能。
(5)在线下载程序功能:单片机的程序都不需要其他设备来烧写,板子已具有自动从计算机下载程序的功能,方便你调试和修改程序。 ★CPLD特有功能:

(1)PWM功能输出:CPLD可以完成你对外部电机或者使其他要求脉宽调制信号的电路。
(2)在线下载程序功能:CPLD的程序都不需要其他设备来烧写,板子已具有自动从计算机下载程序的功能,方便你调试和修改程序。 ★接口说明:

(1)单片......

阅读全文(4785) | 评论:3